QOJ.ac

QOJ

حد الوقت: 2.0 s حد الذاكرة: 1024 MB مجموع النقاط: 100 قابلة للهجوم ✓

#18607. 밤, 거리, 램프, 약국

الإحصائيات

긴 거리를 따라 $n$개의 가로등이 설치된 가로등 기둥이 있습니다. 거리를 따라 좌표계를 도입합시다. $i$번째 가로등이 설치된 기둥은 좌표 $x_i$에 위치합니다. 이 문제의 첫 6개 서브태스크(85점)에서는 두 가로등이 같은 기둥에 설치되지 않습니다. 즉, 모든 $x_i$ 값이 서로 다릅니다. 마지막 두 서브태스크에서는 각 기둥에 최대 두 개의 가로등이 있을 수 있습니다.

거리를 밝히기 위해 일부 가로등을 켤 수 있습니다. 켜진 $i$번째 가로등은 밝기 $s_i$를 가집니다. 이 가로등은 자신이 위치한 기둥에서 $s_i$미터 길이의 연속적인 거리 구간을 밝힙니다. 각 켜진 가로등은 왼쪽 또는 오른쪽으로 방향을 정할 수 있습니다. $i$번째 가로등이 왼쪽을 향하면 구간 $[x_i - s_i, x_i]$를, 오른쪽을 향하면 $[x_i, x_i + s_i]$를 밝힙니다.

거리의 한 구간을 밝히기 위해 켤 가로등의 비어 있지 않은 집합을 선택합시다. 이 가로등 집합을 경제적(economical)이라고 부르기 위해서는, 각 선택된 가로등을 왼쪽 또는 오른쪽으로 적절히 방향을 정하여 다음 두 조건을 만족시킬 수 있어야 합니다:

  • 밝혀진 구간들이 하나의 연속적인 거리 구간을 이룹니다.
  • 길이가 0이 아닌 구간이 두 개 이상의 가로등에 의해 동시에 밝혀지지 않습니다.

아래 그림은 두 번째 예제에서 두 가로등의 경제적 부분집합과 연속적인 거리 구간을 밝히는 방법을 보여줍니다. 각 가로등 위에는 밝기가 적혀 있습니다.

경제적인 가로등 부분집합의 개수를 구하십시오. 답으로는 이 값을 $10^9 + 7$로 나눈 나머지를 출력하십시오.

입력

첫 번째 줄에 정수 $n$ ($1 \le n \le 10^5$)이 주어집니다 — 가로등의 개수입니다. 그 다음에는 가로등에 대한 설명이 이어집니다.

다음 $n$개의 각 줄에는 두 정수 $x_i$와 $s_i$가 주어집니다 — $i$번째 가로등이 위치한 기둥의 좌표와 그 밝기입니다 ($1 \le x_i \le 5 \cdot 10^5$, $1 \le s_i \le 5 \cdot 10^5$, $x_1 \le x_2 \le \dots \le x_n$).

같은 기둥에는 최대 두 개의 가로등만 위치할 수 있습니다. 즉, 각 $v$에 대해 $x_i = v$인 인덱스 $i$는 최대 두 개입니다.

출력

하나의 정수를 출력하십시오 — 경제적인 가로등 부분집합을 선택하는 방법의 수를 $10^9 + 7$로 나눈 나머지입니다.

서브태스크

변수 $t$를 도입합니다 — 동일한 좌표 $x_i$를 가질 수 있는 가로등의 최대 개수입니다.

$t = 1$이면 $x_1 < x_2 < \dots < x_n$입니다.

$t = 2$이면 $x_1 \le x_2 \le \dots \le x_n$이고, $x_i = x_{i+1}$이면 $x_{i-1} < x_i$이고 $x_{i+1} < x_{i+2}$입니다 (해당하는 가로등이 존재하는 경우).

서브태스크 점수 $t$ $n$ 추가 제약 조건 필요한 서브태스크
1 10 $t = 1$ $n \le 10$
2 15 $t = 1$ 서로 다른 두 가로등 $i, j$에 대해 $x_i - s_i \ne x_j$이고 $x_i + s_i \ne x_j - s_j$
3 15 $t = 1$ 서로 다른 두 가로등 $i, j$에 대해 $s_i \ne s_j$
4 15 $t = 1$ 서로 다른 두 가로등 $i, j$에 대해 $s_i = s_j$
5 10 $t = 1$ $n \le 1000$ $s_i, x_i \le 1000$
6 20 $t = 1$ 1 – 5
7 10 $t = 2$ $x_i = x_{i+1}$이면 $s_i \ne s_{i+1}$ 1 – 6
8 5 $t = 2$ 예제, 1 – 7

예제

입력 1

2
2 3
7 2

출력 1

3

입력 2

3
1 1
3 1
4 2

출력 2

6

입력 3

5
3 2
4 2
5 2
6 2
7 2

출력 3

10

입력 4

4
3 2
7 4
7 4
8 2

출력 4

8

입력 5

5
1 2
1 3
2 1
2 2
4 1

출력 5

19

참고

첫 번째 예제에서는, 모든 비어 있지 않은 가로등 부분집합이 경제적입니다.

두 번째 예제에서는, 집합 $\{1, 2, 3\}$을 제외한 모든 가로등 부분집합이 경제적입니다.

Discussions

About Discussions

The discussion section is only for posting: General Discussions (problem-solving strategies, alternative approaches), and Off-topic conversations.

This is NOT for reporting issues! If you want to report bugs or errors, please use the Issues section below.

Open Discussions 0
No discussions in this category.

Issues

About Issues

If you find any issues with the problem (statement, scoring, time/memory limits, test cases, etc.), you may submit an issue here. A problem moderator will review your issue.

Guidelines:

  1. This is not a place to publish discussions, editorials, or requests to debug your code. Issues are only visible to you and problem moderators.
  2. Do not submit duplicated issues.
  3. Issues must be filed in English or Chinese only.
Active Issues 0
No issues in this category.
Closed/Resolved Issues 0
No issues in this category.