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

알파카컵 2회: E - 알파카 게임 (Easy)

Platinum IV 플래티넘 IV
난이도
3s
시간 제한
1024MB
메모리 제한
0
맞았습니다!!
12
제출 수
0.0%
정답률
레이팅

의견: 0

설명

알파카 경현이는 매우 어려운 리듬 게임을 하고 있다.

이 게임에는 총 \(N\)개의 노트가 등장한다. \(i\)번째 노트는 시간 구간 \([L_i, R_i]\) 안에 클릭해야 처리할 수 있다. 즉, 알파카가 어떤 시각 \(t\)에 클릭했을 때

$$ L_i \le t \le R_i $$

를 만족하면 \(i\)번째 노트를 처리할 수 있다.

하지만 알파카는 아무 시각에나 정확히 클릭할 수 없다. 알파카가 화면을 보고 반응할 수 있는 시각은 모니터의 프레임이 갱신되는 시각뿐이다.

주사율이 \(F\) Hz인 모니터를 사용하면, 프레임은 \(\frac{1}{F}\)초마다 한 번씩 갱신된다. 또한 게임 시작 시각과 모니터의 프레임 갱신 시각은 어긋나 있을 수 있다.

따라서 알파카가 클릭할 수 있는 시각들은 어떤 실수 \(x\)에 대해 다음과 같이 표현된다.

$$ x+\frac{k}{F} $$

여기서 \(k\)는 음이 아닌 정수이고,

$$ 0 \le x < \frac{1}{F} $$

이다.

알파카는 게임을 시작하기 전에 \(x\)를 원하는 값으로 한 번 정할 수 있다. 단, 게임이 시작된 뒤에는 \(x\)를 바꿀 수 없다.

알파카가 모든 노트를 처리하려면, 모든 \(i\)에 대해 \([L_i, R_i]\) 안에 클릭 가능한 시각이 적어도 하나 존재해야 한다.

즉, 모든 \(i\)에 대해 어떤 음이 아닌 정수 \(k\)가 존재하여

$$ L_i \le x+\frac{k}{F} \le R_i $$

를 만족해야 한다.

알파카는 여러 개의 모니터를 후보로 가지고 있다. \(j\)번째 모니터의 주사율은 \(F_j\) Hz이다.

각 후보 모니터에 대해, 모든 노트를 처리할 수 있도록 하는 \(x\)를 정할 수 있는지 판정하여라.

시간은 모두 마이크로초 단위의 정수로 주어진다. 즉, 입력으로 주어지는 \(L_i, R_i\)는 실제 시간

$$ \frac{L_i}{10^6}, \frac{R_i}{10^6} $$

초를 의미한다.

제약
  • $$ 1 \le N \le 200{,}000 $$

  • $$ 1 \le Q \le 50 $$

  • $$ 0 \le L_i \le R_i \le 10^{12} $$

  • $$ 1 \le F_j \le 10^{12} $$

  • 모든 입력값은 정수이다.

입력 형식

첫째 줄에 노트의 개수 \(N\)과 후보 주사율의 개수 \(Q\)가 주어진다.

다음 \(N\)개의 줄에는 두 정수 \(L_i, R_i\)가 공백으로 구분되어 주어진다.

이는 \(i\)번째 노트를 실제 시간 구간

$$ \left[\frac{L_i}{10^6}, \frac{R_i}{10^6}\right] $$

초 안에 클릭해야 함을 의미한다.

다음 \(Q\)개의 줄에는 정수 \(F_j\)가 주어진다.

출력 형식

\(Q\)개의 줄을 출력한다.

\(j\)번째 줄에는 주사율이 \(F_j\) Hz인 모니터로 모든 노트를 처리할 수 있으면 YES, 그렇지 않으면 NO를 출력한다.

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

Subtask 1

8점

\(N \le 8\), \(Q \le 5\), \(R_i \le 10^6\)

Subtask 2

12점

\(N \le 100\), \(Q \le 10\), \(R_i \le 10^6\)

Subtask 3

15점

모든 \(i\)에 대해 \(L_i=R_i\)

Subtask 4

20점

\(N \le 5000\)

Subtask 5

20점

\(Q=1\)

Subtask 6

25점

추가 제한이 없다.

예제 1
입력
3 3
0 0
1000000 1000000
2000000 2000000
1
2
3
출력
YES
YES
YES
설명

\(F=1\)일 때 \(x=0\)으로 정하면 클릭 가능한 시각은 \(0,1,2,\dots\)초이다. \(F=2,3\)인 경우에도 \(x=0\)으로 정하면 모든 노트를 처리할 수 있다.

예제 2
입력
2 4
0 0
500000 500000
1
2
3
4
출력
NO
YES
NO
YES
설명

두 노트는 각각 \(0\)초와 \(0.5\)초에 정확히 클릭해야 한다. \(F=2\)일 때 \(x=0\)으로 정하면 클릭 가능한 시각은 \(0,0.5,1,1.5,\dots\)초이므로 가능하다. \(F=1\) 또는 \(F=3\)일 때는 어떤 \(x\)로도 두 시각을 동시에 클릭할 수 없다.

예제 3
입력
2 3
100000 200000
600000 700000
1
2
5
출력
NO
YES
YES
설명

\(F=2\)일 때 \(x=0.1\)로 정하면 클릭 가능한 시각은 \(0.1,0.6,1.1,\dots\)초이므로 두 노트를 모두 처리할 수 있다. \(F=5\)일 때도 주기가 \(0.2\)초이므로 \(x=0.1\)로 정하면 \(0.1,0.3,0.5,0.7,\dots\)초에 클릭할 수 있어 \([0.1,0.2]\)\(0.1\)초와 \([0.6,0.7]\)\(0.7\)초를 모두 처리할 수 있다.

예제 4
입력
4 4
0 100000
250000 350000
500000 600000
750000 850000
1
2
3
4
출력
NO
NO
NO
YES
설명

\(F=4\)일 때 \(x=0\)으로 정하면 클릭 가능한 시각은 \(0,0.25,0.5,0.75,\dots\)초이므로 모든 노트를 처리할 수 있다.

문제 정보

rip 작성

출처 알파카컵 2회

평가 및 의견

알파카컵 2회: E - 알파카 게임 (Easy)

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

Log in to rate problems.

개별 의견

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

풀이 제출

알파카컵 2회: E - 알파카 게임 (Easy)

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