QOJ.ac

QOJ

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

#8535. Mooball のチーム 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 は mooball の試合のために 2 つのチームを選びたいと考えています!

一方は「赤」チーム、もう一方は「青」チームです。チームにはいくつかの条件があります。どちらのチームも空であってはならず、$N$ 頭の牛のそれぞれは高々 1 つのチームに所属しなければなりません(どちらにも所属しなくてもかまいません)。残る条件は、mooball 特有の道具、無限に長いネットによるものです。このネットは、平面上の水平または垂直な直線として、$x = 0.5$ のような整数ではない座標に置かなければなりません。FJ は、ネットで 2 つのチームを分離できるようにチームを選ばなければなりません。牛たちは、そのために移動するつもりはありません。

農家を助けてあげましょう!上の条件を満たす赤チームと青チームの選び方の個数を、$10^9+7$ で割った余りを Farmer John のために求めてください。

入力

入力の最初の行には 1 つの整数 $N.$ が与えられます。

続く $N$ 行には、それぞれ空白で区切られた 2 つの整数 $x_i$ と $y_i$ が与えられます。$x_i$ は $1\dots N$ の順列をなし、$y_i$ についても同様であることが保証されます。

出力

上の条件を満たす赤チームと青チームの選び方の個数を、$10^9+7$ で割った余りを表す 1 つの整数を出力してください。

入出力例

入力 1

2
1 2
2 1

出力 1

2

注記

赤チームを牛 1、青チームを牛 2 とするか、その逆にすることができます。どちらの場合も、ネット(例えば $x=1.5$)で 2 つのチームを分離できます。

入力 2

3
1 1
2 2
3 3

出力 2

10

注記

牛をチームに割り当てる 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

注記

牛をチームに割り当てる 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.