교환 학생

면접 대비

시간 제한2초메모리 제한512 MB

요약
주간 수업 일정과 k가 주어질 때 정확히 k일의 수업을 포함하는 가장 짧은 연속 기간을 구합니다.
난이도

보통10점 중 5점

유형
배열, 시뮬레이션, 그리디, 수학
정답자
아직 제출이 없습니다

문제

베를란트 국립 대학은 전 세계에서 교환 학생을 받는다. 베를란트의 수도에 가서 그 나라 최고의 교사들에게 배울 수 있다.

베를란트 국립 대학은 주 7일 내내 문을 열지만, 교환 학생을 위한 수업은 다음 일정에 따라 열린다. 일곱 개의 정수 a1,a2,…,a7a_1, a_2, \ldots, a_7 (ai=0a_i = 0 또는 ai=1a_i = 1)이 주어진다.

  • 일요일에 교환 학생 수업이 있으면 a1=1a_1 = 1이고, 없으면 a1=0a_1 = 0이다.
  • 월요일에 교환 학생 수업이 있으면 a2=1a_2 = 1이고, 없으면 a2=0a_2 = 0이다.
  • ...
  • 토요일에 교환 학생 수업이 있으면 a7=1a_7 = 1이고, 없으면 a7=0a_7 = 0이다.

교환 학생 수업은 일주일 중 적어도 하루에는 열린다.

베를란트 국립 대학에서 교환 학생으로 kk일 동안 공부하기 위해, 수도에 머무는 날짜 수를 최소로 하고 싶다. 교환 학생으로 정확히 kk일 공부하기 위해 수도에 연속으로 머물러야 하는 최소 일수를 구하는 프로그램을 작성하시오.

입력

첫째 줄에 테스트 케이스의 수 tt가 주어진다 (1≤t≤10 0001 \le t \le 10\,000). 각 테스트 케이스마다 문제를 독립적으로 풀고 답을 출력한다.

각 테스트 케이스는 두 줄로 이루어진다. 첫째 줄에는 교환 학생으로 공부해야 하는 날짜 수 kk가 주어진다 (1≤k≤1081 \le k \le 10^8). 둘째 줄에는 정확히 일곱 개의 정수 a1,a2,…,a7a_1, a_2, \ldots, a_7이 주어진다 (ai=0a_i = 0 또는 ai=1a_i = 1). ai=1a_i = 1이면 일주일 중 ii번째 날에 교환 학생 수업이 열린다.

출력

tt개의 줄을 출력한다. ii번째 줄에는 ii번째 테스트 케이스의 답, 즉 교환 학생으로 정확히 kk일 공부하기 위해 머물러야 하는 최소 연속 일수를 출력한다.

힌트

첫 번째 테스트 케이스에서는 월요일에 베를란트의 수도에 도착해서 그날 수업을 듣고, 다음 월요일까지 일주일을 보낸 뒤 다음 월요일에 다시 수업을 들어야 한다. 따라서 베를란트의 수도에 총 8일을 머물러야 한다.

예제1

  1. 예제 1

    입력
    3
    2
    0 1 0 0 0 0 0
    100000000
    1 0 0 0 1 0 1
    1
    1 0 0 0 0 0 0
    
    예상 출력
    8
    233333332
    1