QOJ.ac

QOJ

IDProblemSubmitterResultTimeMemoryLanguageFile sizeSubmit timeJudge time
#54573#4194. Killjoys' ConferenceUsername#AC ✓552ms64480kbC++231.7kb2022-10-09 19:08:402022-10-09 19:08:43

Judging History

你现在查看的是最新测评结果

  • [2023-08-10 23:21:45]
  • System Update: QOJ starts to keep a history of the judgings of all the submissions.
  • [2022-10-09 19:08:43]
  • 评测
  • 测评结果:AC
  • 用时:552ms
  • 内存:64480kb
  • [2022-10-09 19:08:40]
  • 提交

answer

#include <bits/stdc++.h>

#define el '\n'
#define ll long long
#define ld long double

#define Beevo ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0);

using namespace std;

int M;
const int N = 1e6 + 5;

int col[N];
vector<int> g[N];

int mul(int a, int b) {
    a = (a % M + M) % M;
    b = (b % M + M) % M;

    return 1LL * a * b % M;
}

int add(int a, int b) {
    a = (a % M + M) % M;
    b = (b % M + M) % M;

    return (a + b) % M;
}

int modPow(int b, int p) {
    if (p == 0)
        return 1;

    int x = modPow(b, p / 2);

    return p % 2 == 0 ? mul(x, x) : mul(b, mul(x, x));
}

int modInvFer(int n) {
    return modPow(n, M - 2);
}

bool bipartite(int u, int cur) {
    col[u] = cur;

    bool ret = 1;

    for (auto v: g[u]) {
        if (col[v] == 2)
            ret &= bipartite(v, !cur);
        else {
            if (col[v] != !col[u])
                ret = 0;
        }
    }

    return ret;
}

void testCase() {
    int n, m, p;
    cin >> n >> m >> p;

    int u, v;
    for (int i = 0; i < m; i++) {
        cin >> u >> v;

        g[u].push_back(v);
        g[v].push_back(u);
    }

    for (int i = 1; i <= n; i++)
        col[i] = 2;

    M = p;

    int sol = 1;
    for (int i = 1; i <= n; i++) {
        if (col[i] == 2) {
            if (bipartite(i, 0))
                sol = mul(sol, 2);
            else {
                cout << "impossible";

                return;
            }
        }
    }

    cout << add(mul(sol, modInvFer(2)), 1);
}

signed main() {
    Beevo

    int T = 1;
//    cin >> T;

    while (T--)
        testCase();

    return 0;
}

Details

Tip: Click on the bar to expand more detailed information

Test #1:

score: 100
Accepted
time: 3ms
memory: 27440kb

input:

4 2 11
1 2
3 4

output:

3

result:

ok single line: '3'

Test #2:

score: 0
Accepted
time: 9ms
memory: 28288kb

input:

5 2 3
1 2
3 4

output:

2

result:

ok single line: '2'

Test #3:

score: 0
Accepted
time: 4ms
memory: 28024kb

input:

3 3 11
1 2
2 3
3 1

output:

impossible

result:

ok single line: 'impossible'

Test #4:

score: 0
Accepted
time: 9ms
memory: 27780kb

input:

100 0 13

output:

9

result:

ok single line: '9'

Test #5:

score: 0
Accepted
time: 37ms
memory: 30940kb

input:

1000000 0 999983

output:

131073

result:

ok single line: '131073'

Test #6:

score: 0
Accepted
time: 2ms
memory: 28496kb

input:

5 0 17

output:

0

result:

ok single line: '0'

Test #7:

score: 0
Accepted
time: 8ms
memory: 28464kb

input:

6 0 11

output:

0

result:

ok single line: '0'

Test #8:

score: 0
Accepted
time: 552ms
memory: 64480kb

input:

910292 929828 296851369
138316 521196
344174 594024
83412 434709
773248 836155
238718 422888
306559 904462
267860 898937
413132 488904
377100 725377
280966 647857
194879 226916
46886 181828
211614 264486
597301 659354
211498 340231
131349 463058
218728 850468
112991 832910
311079 403177
94372 457800...

output:

impossible

result:

ok single line: 'impossible'

Test #9:

score: 0
Accepted
time: 34ms
memory: 31832kb

input:

474415 39086 193520539
226365 326319
173587 188446
196237 384686
12130 438747
142687 240963
42823 198839
33523 441119
37690 269573
158873 264117
265666 307648
371107 470830
111014 416679
205426 259164
143776 337091
266405 399531
7332 293732
87282 131377
144755 269135
73861 213137
413795 429757
12293...

output:

24850764

result:

ok single line: '24850764'

Test #10:

score: 0
Accepted
time: 53ms
memory: 34588kb

input:

886771 69103 843021961
155346 347704
395735 428613
145842 769876
730641 854763
368391 433651
570964 775530
482006 716549
411782 547430
22514 663720
7673 93526
234498 340129
126566 579992
627671 739879
683991 787364
64669 613364
361636 539521
82596 581375
151505 311499
214280 232615
429695 706186
102...

output:

195055087

result:

ok single line: '195055087'

Test #11:

score: 0
Accepted
time: 31ms
memory: 31988kb

input:

261871 56947 37434461
181348 220749
60472 229420
22876 33088
78741 90153
52949 210249
82780 241798
19262 56861
83377 141486
199523 211244
144337 168415
124052 145687
21941 74986
138530 230058
108522 125335
24900 44205
40874 58680
27342 173854
96226 169565
42306 77188
88277 143247
35849 229572
28335 ...

output:

29316196

result:

ok single line: '29316196'

Test #12:

score: 0
Accepted
time: 52ms
memory: 35184kb

input:

730267 96959 263495809
161273 375572
255354 562714
173645 232299
282893 328384
211088 298409
8990 696289
431898 554175
678197 701660
10563 605490
263785 696678
133569 330504
121 635357
549515 559844
571064 698976
523289 710717
364053 423410
20210 423915
306989 357164
241145 404451
35863 426544
35402...

output:

183324026

result:

ok single line: '183324026'

Test #13:

score: 0
Accepted
time: 33ms
memory: 33476kb

input:

317597 79392 370638017
85444 281488
86255 250036
59640 187426
91541 197016
115564 151195
127964 281637
163111 256617
78576 275740
133367 292829
63773 108615
5562 102599
53140 145288
69160 93021
8925 186049
70808 268881
20656 254231
71089 203880
184543 237436
14565 67134
220007 234899
76369 270335
87...

output:

48131608

result:

ok single line: '48131608'

Test #14:

score: 0
Accepted
time: 2ms
memory: 27536kb

input:

10 10 999983
1 2
2 3
3 4
1 4
5 6
6 7
7 8
8 9
9 10
5 10

output:

3

result:

ok single line: '3'

Test #15:

score: 0
Accepted
time: 3ms
memory: 28128kb

input:

10 10 999983
1 2
1 2
3 4
3 4
5 6
6 7
7 8
8 9
9 10
5 10

output:

5

result:

ok single line: '5'

Test #16:

score: 0
Accepted
time: 2ms
memory: 28848kb

input:

11 10 999983
1 2
2 3
3 4
4 5
5 6
6 7
7 8
8 9
9 10
1 10

output:

3

result:

ok single line: '3'

Test #17:

score: 0
Accepted
time: 2ms
memory: 27072kb

input:

100 100 999983
1 2
1 2
3 4
3 4
5 6
5 6
7 8
7 8
9 10
9 10
11 12
11 12
13 14
13 14
15 16
15 16
17 18
17 18
19 20
19 20
21 22
21 22
23 24
23 24
25 26
25 26
27 28
27 28
29 30
29 30
31 32
31 32
33 34
33 34
35 36
35 36
37 38
37 38
39 40
39 40
41 42
41 42
43 44
43 44
45 46
45 46
47 48
47 48
49 50
49 50
51 ...

output:

880025

result:

ok single line: '880025'

Test #18:

score: 0
Accepted
time: 2ms
memory: 27608kb

input:

1000 1000 999983
1 2
2 3
3 4
4 5
5 6
6 7
7 8
8 9
9 10
1 10
11 12
12 13
13 14
14 15
15 16
16 17
17 18
18 19
19 20
11 20
21 22
22 23
23 24
24 25
25 26
26 27
27 28
28 29
29 30
21 30
31 32
32 33
33 34
34 35
35 36
36 37
37 38
38 39
39 40
31 40
41 42
42 43
43 44
44 45
45 46
46 47
47 48
48 49
49 50
41 50
5...

output:

556666

result:

ok single line: '556666'

Test #19:

score: 0
Accepted
time: 4ms
memory: 28592kb

input:

10000 10000 999983
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 41
41 42
42 43
43 44
44 45
45 46
46 47
47 48
48 49
49 50
50 5...

output:

556666

result:

ok single line: '556666'

Test #20:

score: 0
Accepted
time: 24ms
memory: 31588kb

input:

100000 100000 999983
1 2
2 3
3 4
4 5
5 6
6 7
7 8
8 9
9 10
1 10
11 12
12 13
13 14
14 15
15 16
16 17
17 18
18 19
19 20
11 20
21 22
22 23
23 24
24 25
25 26
26 27
27 28
28 29
29 30
21 30
31 32
32 33
33 34
34 35
35 36
36 37
37 38
38 39
39 40
31 40
41 42
42 43
43 44
44 45
45 46
46 47
47 48
48 49
49 50
41 ...

output:

525518

result:

ok single line: '525518'