QOJ.ac

QOJ

Time Limit: 2 s Memory Limit: 256 MB Total points: 100

#8535. Команды для мубола III

Statistics

На ферме Farmer John есть $N$ коров ($2 \leq N \leq 2\cdot 10^5$), для удобства пронумерованных $1 \dots N$. Корова $i$ находится в точке с целочисленными координатами $(x_i, y_i)$ ($1\le x_i,y_i\le N$). Farmer John хочет выбрать две команды для игры в мубол!

Одна из команд будет «красной», а другая — «синей». К командам предъявляется лишь несколько требований. Обе команды должны быть непустыми, и каждая из $N$ коров должна входить не более чем в одну команду (возможно, ни в одну). Единственное другое требование связано с уникальной особенностью мубола: бесконечно длинной сеткой, которую необходимо разместить на плоскости в виде горизонтальной или вертикальной прямой с нецелой координатой, например $x = 0.5$. FJ должен выбрать команды так, чтобы их можно было разделить сеткой. Коровы не желают перемещаться ради выполнения этого условия.

Помогите фермеру! Вычислите для Farmer John число способов выбрать красную и синюю команды, удовлетворяющие перечисленным требованиям, по модулю $10^9+7$.

Входные данные

Первая строка входных данных содержит одно целое число $N.$

Каждая из следующих $N$ строк входных данных содержит два целых числа $x_i$ и $y_i$, разделённых пробелом. Гарантируется, что значения $x_i$ образуют перестановку $1\dots N$, и то же верно для значений $y_i$.

Выходные данные

Одно целое число — число способов выбрать красную и синюю команды, удовлетворяющие перечисленным требованиям, по модулю $10^9+7$.

Примеры

Входные данные 1

2
1 2
2 1

Выходные данные 1

2

Примечание

Можно выбрать корову $1$ в красную команду, а корову $2$ — в синюю, либо наоборот. В обоих случаях команды можно разделить сеткой (например, $x=1.5$).

Входные данные 2

3
1 1
2 2
3 3

Выходные данные 2

10

Примечание

Ниже приведены все десять возможных способов распределить коров по командам; $i$-й символ обозначает команду $i$-й коровы или . , если $i$-я корова не входит ни в одну команду.

RRB
R.B
RB.
RBB
.RB
.BR
BRR
BR.
B.R
BBR

Входные данные 3

3
1 1
2 3
3 2

Выходные данные 3

12

Примечание

Ниже приведены все двенадцать возможных способов распределить коров по командам:

RRB
R.B
RBR
RB.
RBB
.RB
.BR
BRR
BR.
BRB
B.R
BBR

Входные данные 4

40
1 1
2 2
3 3
4 4
5 5
6 6
7 7
8 8
9 9
10 10
11 11
12 12
13 13
14 14
15 15
16 16
17 17
18 18
19 19
20 20
21 21
22 22
23 23
24 24
25 25
26 26
27 27
28 28
29 29
30 30
31 31
32 32
33 33
34 34
35 35
36 36
37 37
38 38
39 39
40 40

Выходные данные 4

441563023

Примечание

Обязательно выведите ответ по модулю $10^9+7$.

Подзадачи

  • Тест 5: $N\le 10$
  • Тесты 6–9: $N\le 200$
  • Тесты 10–13: $N\le 3000$
  • Тесты 14–24: Нет дополнительных ограничений.

Автор задачи: Dhruv Rohatgi

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.