RiseOJ는 solved.ac와 제휴 관계가 없습니다. 티어 아이콘 © solved.ac. solved.ac
포럼
R00645

유성우와 영지 수확

Diamond III 다이아몬드 III
난이도
6s
시간 제한
256MB
메모리 제한
0
맞았습니다!!
0
제출 수
0.0%
정답률
레이팅

의견: 0

설명

원형으로 배치된 \(S\)개의 구역이 번호 \(1\)부터 \(S\)까지 시계 방향으로 놓여 있다. 각 구역은 정확히 한 영주의 소유이며, 영주는 \(1\)번부터 \(N\)번까지 있고 모든 영주는 최소 하나의 구역을 가진다. 영주 \(k\)는 목표량 \(w_k\)를 채우려 한다.

\(Q\)번의 유성우가 내린다. \(t\)번째 유성우는 원형 구간 \([l, r]\) (즉 \(l\)부터 \(r\)까지 시계 방향, \(l>r\)이면 \(S\)를 지나 한 바퀴 돌아감)에 속한 모든 구역에 각각 \(a\)만큼을 떨어뜨린다. 유성우는 누적된다.

각 영주에 대해, 자신이 소유한 구역들에 쌓인 운석의 총량이 처음으로 목표량 \(w_k\) 이상이 되는 유성우의 번호 \(t\)를 구하여라. \(Q\)번 안에 목표를 못 채우면 NIE를 출력한다.

영주마다 따로 이분 탐색하면 너무 느리다.

제약

\(1 \le N \le S \le 300{,}000\)

\(1 \le Q \le 300{,}000\)

\(1 \le w_k \le 10^9\)

\(1 \le l, r \le S\), \(1 \le a \le 10^9\)

입력 형식

첫 줄에 구역 수 \(S\)와 영주 수 \(N\)이 주어진다.

둘째 줄에 \(S\)개의 정수가 주어지며 \(i\)번째 값은 구역 \(i\)를 소유한 영주의 번호이다.

셋째 줄에 \(N\)개의 정수 \(w_1, \dots, w_N\)이 주어진다.

넷째 줄에 유성우 수 \(Q\)가 주어진다.

다음 \(Q\)개의 줄에 각 유성우의 \(l\), \(r\), \(a\)가 주어진다.

출력 형식

각 영주 \(1\)부터 \(N\)까지에 대해 답을 한 줄에 하나씩 출력한다.

예제 1
입력
5 3
1 2 3 1 2
5 6 7
3
1 3 1
2 4 2
1 5 1
출력
3
NIE
NIE
설명

구역 소유: 1,2,3,1,2. 유성우1은 [1,3]에 1, 유성우2는 [2,4]에 2, 유성우3은 [1,5]에 1. 각 영주가 목표를 처음 채우는 유성우 번호를 출력한다.

예제 2
입력
3 3
1 2 3
100 1 1
2
1 3 1
2 2 1
출력
NIE
1
1
설명

영주1의 목표 100은 두 번의 유성우로 채울 수 없어 NIE. 영주2,3은 첫 유성우로 목표 1 달성.

문제 정보

riseoj 작성

출처 Original

평가 및 의견

유성우와 영지 수확

개요
출제자 난이도 Diamond III 다이아몬드 III 의견 0 / 50 공개 집계 (커뮤니티 난이도, 주요 주제, 품질)는 의견이 충분히 모이면 공개됩니다.

Log in to rate problems.

개별 의견

아직 의견이 없습니다. 자격이 된다면 위 양식에서 가장 먼저 평가해 보세요.

풀이 제출

유성우와 영지 수확

게스트로 둘러보고 있습니다. 로그인하면 풀이를 제출하고 진행 상황을 확인할 수 있습니다. 로그인하고 제출하기
공개
C++20 Tab 들여쓰기 · Ctrl+/ 주석 토글 · Enter 자동 들여쓰기
1 1 1 0 공백: 4 · UTF-8