QOJ.ac

QOJ

実行時間制限: 2 s メモリ制限: 256 MB 満点: 100

#413. 최악의 기자 2

統計

21XX년, 경쟁 프로그래밍은 마인드 스포츠로 널리 인정받아 텔레비전이나 신문 같은 미디어에 자주 등장합니다. 당신은 경쟁 프로그래밍에 관한 기사를 담당하는 JOI 통신사의 기자입니다. 어제 $N$명의 참가자가 출전한 국제 경쟁 프로그래밍 대회가 열렸습니다. 이 대회에 관한 기사를 작성하기 위해 당신에게 다음과 같은 정보가 주어졌습니다:

  • 국제정보올림피아드 및 유사한 대회와 마찬가지로 이 대회의 참가자들은 여러 국가에서 왔습니다. 국가들은 1부터 $N$까지 번호가 매겨져 있습니다. 같은 국가에서 여러 명의 참가자가 왔을 수도 있습니다. 또한 참가자가 한 명도 오지 않은 국가가 있을 수도 있습니다.
  • 이 대회의 진행 시간은 5시간입니다.
  • 대회 도중 참가자들이 획득한 점수는 절대 감소하지 않습니다.
  • 대회 시작 2시간 후, 점수가 같은 참가자는 없었습니다. 그 시점의 순위표에서 $i$위($1 \le i \le N$)에 있던 참가자는 국가 $A_i$ 출신이었으며 점수는 $B_i$였습니다.
  • 대회가 끝났을 때, 점수가 같은 참가자는 없었습니다. 대회 종료 시점의 순위표에서 $i$위($1 \le i \le N$)에 있던 참가자는 국가 $C_i$ 출신이었으며 점수는 $D_i$였습니다.

그러나 기사를 작성하는 단계에서 순위표의 출신 국가 표시에 결함이 있었다는 사실이 밝혀졌습니다. 참가자들의 출신 국가에 관한 정보가 잘못 표시되었을 가능성이 있습니다. 표시된 참가자들의 점수는 정확한 것으로 알려져 있습니다.

따라서 당신은 주어진 정보를 가능한 한 적게 수정하여 모순 없는 순위표(대회 도중 동일한 참가자의 출신 국가가 바뀌지 않고, 참가자가 획득한 점수가 감소하지 않는 순위표)를 추론하기로 결정했습니다. 즉, $2N$개의 값 $A_1, \dots, A_N, C_1, \dots, C_N$ 중 가능한 한 적은 수의 값을 변경하여 다음 조건을 만족시키고 싶어 합니다:

  • 각 $i = 1, 2, \dots, N$에 대하여 $A_i = C_{x_i}$와 $B_i \le D_{x_i}$가 성립하는 $1, 2, \dots, N$의 순열 $x_1, x_2, \dots, x_N$이 존재합니다.

주어진 정보에서 최소 몇 군데를 수정해야 할까요?

입력

표준 입력에서 다음 데이터를 읽으세요:

  • 첫 번째 줄에는 대회의 참가자 수를 나타내는 정수 $N$이 주어집니다.
  • 다음 $N$개의 줄 중 $i$번째 줄($1 \le i \le N$)에는 공백으로 구분된 두 정수 $A_i$와 $B_i$가 주어집니다. 이는 대회 시작 2시간 후의 순위표에서 $i$위에 있던 참가자가 국가 $A_i$ 출신이고 점수가 $B_i$였음을 나타냅니다.
  • 그다음 $N$개의 줄 중 $i$번째 줄($1 \le i \le N$)에는 공백으로 구분된 두 정수 $C_i$와 $D_i$가 주어집니다. 이는 대회 종료 시점의 순위표에서 $i$위에 있던 참가자가 국가 $C_i$ 출신이고 점수가 $D_i$였음을 나타냅니다.

출력

순위표에 모순이 없도록 만들기 위해 필요한 출신 국가 정보의 최소 수정 횟수를 한 줄에 출력하세요.

제한

모든 입력 데이터는 다음 조건을 만족합니다:

  • $2 \le N \le 200\,000$.
  • $1 \le A_i \le N$ ($1 \le i \le N$).
  • $0 \le B_i \le 1\,000\,000\,000$ ($1 \le i \le N$).
  • $B_i > B_{i+1}$ ($1 \le i \le N - 1$).
  • $1 \le C_i \le N$ ($1 \le i \le N$).
  • $0 \le D_i \le 1\,000\,000\,000$ ($1 \le i \le N$).
  • $D_i > D_{i+1}$ ($1 \le i \le N - 1$).
  • $A_1, \dots, A_N, C_1, \dots, C_N$의 일부 값을 변경하여 순위표에 모순이 없도록 만드는 것이 가능합니다.

서브태스크

  1. (15점) $N \le 16$을 만족합니다.
  2. (15점) $N \le 50$을 만족합니다.
  3. (30점) $N \le 5000$을 만족합니다.
  4. (40점) 추가 제한이 없습니다.

예제

입력 1

3
3 500
2 200
1 100
1 1000
3 700
3 400

출력 1

1

참고 1

$C_3$의 값을 2로 바꾸면 다음과 같이 순위표에 모순이 없게 됩니다:

  • 시작 2시간 후 500점으로 1위였던 국가 3 출신 참가자는 700점으로 2위를 기록하며 대회를 마쳤습니다.
  • 시작 2시간 후 200점으로 2위였던 국가 2 출신 참가자는 400점으로 3위를 기록하며 대회를 마쳤습니다.
  • 시작 2시간 후 100점으로 3위였던 국가 1 출신 참가자는 1000점으로 1위를 기록하며 대회를 마쳤습니다.

여기서 만약 $C_2$의 값을 2로 바꾸면, 국가 3 출신 참가자가 시작 2시간 후에는 500점이었지만 대회 종료 시점에는 400점이 되어 모순된 순위표가 됩니다. 1회 미만의 수정으로는 모순 없는 순위표를 얻을 수 없으므로 1을 출력합니다.

입력 2

3
3 3
3 2
1 1
3 4
3 2
1 1

출력 2

0

참고 2

이 경우에는 출신 국가 정보를 수정하지 않아도 순위표에 모순이 없습니다. 대회 시작 2시간 후의 점수에서 점수가 오르지 않은 참가자가 있을 수도 있다는 점에 유의하세요. 또한 순위표에 같은 국가 출신의 참가자가 여러 명 있을 수도 있다는 점에 유의하세요.

입력 3

6
1 70
4 50
1 30
2 20
1 10
3 0
6 100
2 90
1 80
2 60
4 40
1 10

출력 3

3

참고 3

이 예제에서는 $A_1$의 값을 2로, $A_6$의 값을 4로, $C_1$의 값을 4로 바꾸면 순위표에 모순이 없게 됩니다.

Editorials

IDTypeStatusTitlePosted ByLast UpdatedActions
EditorialOpen Official EditorialQingyu- Download

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.