아직 만들고 있는 페이지입니다.

이 페이지는 아직 만드는 중입니다. 보이는 내용은 바뀔 수 있습니다.

세계 일주

시간 제한5초메모리 제한24 MB

요약
각 비행기의 항속거리마다 최적의 공항에서 출발해 적도를 한 바퀴 도는 데 필요한 최소 착륙 횟수를 구합니다.
난이도

보통10점 중 7점

유형
그리디, 누적 합, 투 포인터
정답자
아직 제출이 없습니다

문제

바이트아사르는 오랜 노력 끝에 조종사 면허를 땄다. 이를 기념해 비행기를 한 대 사서 자신이 사는 행성 3-SATurn을 한 바퀴 돌기로 했다. 비행 경로는 적도를 따라간다. 적도는 길어서 도중에 연료를 채워야 한다. 적도 위에는 공항이 nn개 있고, 비행기는 공항에 착륙할 때마다 연료를 가득 채운다. 기종마다 연료를 가득 채우고 착륙 없이 갈 수 있는 최대 거리가 다르다.

바이트아사르는 후보로 놓은 기종 ss개마다 적도를 한 바퀴 도는 데 필요한 착륙 횟수의 최솟값을 알고 싶어 한다. 마지막 착륙도 횟수에 포함한다. 출발 공항은 기종마다 다르게 골라도 된다.

입력

첫째 줄에 적도 위 공항의 수 nn과 기종의 수 ss가 공백 하나로 구분되어 주어진다 (2≤n≤1062 \le n \le 10^6, 1≤s≤1001 \le s \le 100).

둘째 줄에 이웃한 공항 사이의 거리 l1,l2,…,lnl_1, l_2, \dots, l_n이 공백 하나로 구분되어 주어진다. lil_i는 ii번 공항과 i+1i+1번 공항 사이의 거리이고, lnl_n은 nn번 공항과 11번 공항 사이의 거리다. 각 lil_i는 양의 정수이고 l1+l2+⋯+ln≤109l_1 + l_2 + \dots + l_n \le 10^9이다.

셋째 줄에 기종별 항속 거리 d1,d2,…,dsd_1, d_2, \dots, d_s가 공백 하나로 구분되어 주어진다 (1≤di≤l1+l2+⋯+ln1 \le d_i \le l_1 + l_2 + \dots + l_n). did_i는 ii번째 기종이 착륙해서 연료를 채우기 전까지 갈 수 있는 최대 거리다. 모든 거리는 킬로미터 단위다.

출력

ss개의 줄을 출력한다. ii번째 줄에는 ii번째 기종으로 적도를 따라 3-SATurn을 한 바퀴 도는 데 필요한 최소 비행 구간 수를 출력한다. 비행 구간 수는 착륙 횟수와 같고, 출발 공항은 아무 공항이나 골라도 된다. 그 기종으로 일주가 불가능하면 NIE를 출력한다. NIE는 폴란드어로 "아니오"라는 뜻이다.

힌트

그림은 첫 번째 예제의 공항 배치다. 굵은 실선은 항속 거리가 4인 비행기의 최적 경로이고, 점선은 항속 거리가 3인 비행기의 최적 경로다.

예제4

  1. 예제 1

    입력
    6 4
    2 2 1 3 3 1
    3 2 4 11
    
    예상 출력
    4
    NIE
    3
    2
    
  2. 예제 2

    입력
    3 1
    3 4 3
    6
    
    예상 출력
    2
    
  3. 예제 3

    입력
    2 3
    1 1
    1 2 2
    
    예상 출력
    2
    1
    1
    
  4. 예제 4

    입력
    7 4
    1 1 1 1 1 1 1
    1 2 3 7
    
    예상 출력
    7
    4
    3
    1