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

건초 더미

Platinum II 플래티넘 II
난이도
2s
시간 제한
1024MB
메모리 제한
7
맞았습니다!!
22
제출 수
31.8%
정답률
레이팅

의견: 0

설명

수직선의 위치 \(0\)에서 오른쪽 방향으로 정수 크기의 힘을 가진 화살이 발사된다. 각 정수 위치 \(i\) (\(1 ≤ i ≤ N\))에는 방어력 \(D_i\)를 가진 건초 더미를 최대 하나 설치할 수 있다.

화살이 건초 더미에 부딪쳤을 때 화살의 힘이 방어력보다 작거나 같으면, 화살은 즉시 멈춘다. 반대로 화살의 힘이 방어력보다 크면, 힘이 방어력 \(D_i\) 만큼 감소한 뒤 건초 더미를 관통해 계속 날아간다.

두 정수 \(X\), \(P\)에 대하여 \(f(X, P)\)의 값을 "힘이 \(P\)인 화살이 위치 \(X\)에서 멈추거나 위치 \(X\)보다 왼쪽에서 멈추도록 하기 위해 설치해야 하는 건초 더미의 최소 개수" 라고 정의하자. 만약 어떠한 설치 방법으로도 화살을 멈추게 할 수 있는 방법이 없다면, \(f(X, P) = −1\)로 정의한다.

\(Q\)개의 정수 쌍 \((X_j , P_j )\) (\(1 ≤ j ≤ Q\))에 대해 각각 \(f(X_j , P_j)\)의 값을 구하는 프로그램을 작성하라.

제약
  • 주어지는 모든 수는 정수이다.
  • \(1 ≤ N, Q ≤ 300\, 000\)
  • \(1 ≤ i ≤ N\)인 모든 \(i\)에 대하여 \(1 ≤ D_i ≤ 10^9\)
  • \(1 ≤ j ≤ Q\)인 모든 \(j\)에 대하여 \(1 ≤ X_j ≤ N\)
  • \(1 ≤ j ≤ Q\)인 모든 \(j\)에 대하여 \(1 ≤ P_j ≤ 10^9\)
입력 형식

첫 번째 줄에는 건초 더미의 설치할 수 있는 위치의 개수 \(N\)과 발사되는 화살의 횟수 \(Q\)가 공백을 사이에 두고 주어진다.
두 번째 줄에는 위치 \(i\) (\(1 ≤ i ≤ N\))에 놓을 수 있는 건초 더미의 방어력 \(D_1 , D_2 , \cdots, D_N\)이 공백을 사이에 두고 주어진다.
세 번째 줄부터 \(Q\)개의 줄에 걸쳐 \(Q\)개의 정수 쌍이 주어진다. 이 중 \(j\) (\(1 ≤ j ≤ Q\))번째줄에는 \(X_j\)\(P_j\)가 공백을 사이에 두고 주어진다.

출력 형식

\(Q\)개의 줄을 출력한다. 이 중 \(j\) (\(1 ≤ j ≤ Q\))번째 줄에는 \(f(X_j , P_j )\)의 값을 출력한다.

서브태스크
서브태스크점수설명

1

6점

\(N, Q ≤ 18\)

2

16점

\(N, Q ≤ 5\, 000\)

3

18점

\(1 ≤ i ≤ N\)인 모든 \(i\)에 대하여 \(D_i ≤ 300\)

4

32점

\(1 ≤ i < N\)인 모든 \(i\)에 대하여 \(D_i ≤ D_{i+1}\)

5

28점

\(N = Q\), \(1 ≤ j ≤ Q\)인 모든 \(j\)에 대하여 \(X_j = j\), \(P_1 = P_2 = \cdots = P_Q\)

6

16점

\(1 ≤ j ≤ Q\)인 모든 \(j\)에 대하여 \(X_j = N\)

7

12점

\(1 ≤ i < j ≤ N\)인 모든 \(i\), \(j\)에 대하여 \(D_i ≠ D_j\)

8

22점

추가 제약 사항 없음.

예제 1
입력
5 6
2 5 6 1 12
1 1
5 14
2 8
3 7
4 14
5 1
출력
1
2
-1
2
4
1
예제 2
입력
5 5
3 6 1 1 10
1 10
2 10
3 10
4 10
5 10
출력
-1
-1
3
3
1
문제 정보

riseoj 작성

출처 올림피아드 > 한국정보올림피아드 > KOI 2025 > 1차 대회 > 중등부 3번

평가 및 의견

건초 더미

개요
출제자 난이도 Platinum II 플래티넘 II 의견 0 / 50 공개 집계 (커뮤니티 난이도, 주요 주제, 품질)는 의견이 충분히 모이면 공개됩니다.

Log in to rate problems.

개별 의견

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

풀이 제출

건초 더미

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