QOJ.ac

QOJ

IDProblemSubmitterResultTimeMemoryLanguageFile sizeSubmit timeJudge time
#174313#6634. Central Subsetcada_dia_mas_insanos#WA 1330ms24340kbC++172.3kb2023-09-10 06:18:112023-09-10 06:18:11

Judging History

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

  • [2023-09-10 06:18:11]
  • 评测
  • 测评结果:WA
  • 用时:1330ms
  • 内存:24340kb
  • [2023-09-10 06:18:11]
  • 提交

answer

#include <bits/stdc++.h>

using namespace std;

const int maxn = 2e5 + 10, oo = 1e9;

mt19937 rng(chrono::steady_clock::now().time_since_epoch().count());
int rand(int l, int r) {
    return uniform_int_distribution<int>(l, r)(rng);
}

int n, m;
int dis[maxn], in[maxn];
vector <int> graph[maxn];

void bfs(int root) {
    for (int i=0; i <n; i++) dis[i]=oo;
    queue <int> q;
    for (int i=0; i < n; i++) if (in[i]) dis[i]=0, q.push(i);
    while (!q.empty()) {
        int u = q.front(); q.pop();
        for(int&v : graph[u]) {
            if (dis[v] > dis[u]+1) {
                dis[v]=dis[u]+1;
                q.push(v);
            }
        }
    }
}
void clean() {
    for (int i=0; i < n; i++) {
        graph[i].clear();
		in[i]=0;
        dis[i]=oo;
    }
}
int main() {
    ios_base::sync_with_stdio(0), cin.tie(0);
    #ifdef LOCAL
        freopen("input.txt", "r", stdin);
        freopen("output.txt", "w", stdout);
    #endif // LOCAL

    int tt; cin >> tt;
    while (tt--) {
        cin >> n >> m;
        for (int i=0; i<m; i++) {
            int u, v; cin >> u >> v;
            u--, v--;
            graph[u].push_back(v);
            graph[v].push_back(u);
        }

        bfs(rand(0, n-1));
        int limit = ceil(sqrt(n));
        vector <int> taken;
        while (taken.size() < limit) {
            int w=-1;
            for (int i=0; i<n; i++) {
                if (in[i]) continue;
                if (w == -1 || dis[i]>dis[w]) w=i;
            }
            if (dis[w] <= limit) break;
			if (w == -1) break;
            taken.push_back(w);
            in[w]=1;
            bfs(w);
        }

        bool ok=1;
        queue <int> q;
        for (int i=0; i <n; i++) dis[i]=oo;
        for (int& u : taken) q.push(u), dis[u]=0;
        while (!q.empty()) {
            int u = q.front(); q.pop();
            for(int& v : graph[u]) {
                if (dis[v] > dis[u]+1) {
                    dis[v] = dis[u]+1;
                    q.push(v);
                }
            }
        }
        for (int i=0; i<n; i++) ok &= dis[i]<=limit;
        if (!ok) cout << -1 << endl;
        else {
            cout << taken.size() << endl;
            for (int& i : taken) cout << i+1 << ' ';
            cout << endl;
        }
        clean();
    }
    return 0;
}

Details

Tip: Click on the bar to expand more detailed information

Test #1:

score: 100
Accepted
time: 1ms
memory: 8576kb

input:

2
4 3
1 2
2 3
3 4
6 7
1 2
2 3
3 1
1 4
4 5
5 6
6 4

output:

2
1 4 
1
1 

result:

ok correct (2 test cases)

Test #2:

score: 0
Accepted
time: 63ms
memory: 8852kb

input:

10000
15 14
13 12
5 4
9 8
11 12
15 14
10 9
14 13
2 3
2 1
6 5
10 11
3 4
7 6
8 7
6 5
2 1
2 4
4 6
2 3
3 5
10 9
8 3
9 4
5 6
5 10
3 2
5 4
2 7
1 2
4 3
2 1
2 1
2 1
2 1
9 8
9 8
5 4
1 2
6 5
3 4
3 2
7 8
7 6
2 1
1 2
14 13
3 10
5 6
2 9
11 4
2 3
2 1
8 7
13 6
5 4
5 12
6 7
4 3
7 14
16 15
2 3
2 1
6 10
6 9
6 4
9 11
...

output:

3
1 15 8 
1
1 
2
1 6 
1
1 
1
1 
3
1 9 5 
1
1 
2
1 8 
3
1 16 11 
1
1 
3
1 20 10 
2
1 8 
2
1 6 
2
1 16 
1
1 
3
1 15 8 
1
1 
1
1 
2
1 9 
1
1 
2
1 4 
2
1 8 
2
1 8 
2
1 18 
1
1 
3
1 15 8 
1
1 
3
1 9 13 
1
1 
1
1 
3
1 21 11 
3
1 9 11 
2
1 8 
3
1 16 13 
1
1 
2
1 6 
3
1 6 7 
2
1 7 
3
1 20 21 
1
1 
3
1 12 6 ...

result:

ok correct (10000 test cases)

Test #3:

score: 0
Accepted
time: 55ms
memory: 8648kb

input:

100
2000 1999
529 528
885 884
1221 1222
375 374
245 244
758 757
711 710
1521 1522
1875 1874
749 750
823 822
1959 1958
1767 1766
155 154
631 632
825 824
1330 1331
457 456
1344 1343
1817 1818
413 414
582 583
1828 1827
1335 1336
654 655
162 161
1668 1667
1966 1967
1472 1471
1185 1184
518 517
1509 1510
...

output:

33
1 2000 1000 1500 500 750 1250 1750 250 375 625 875 1125 1375 1625 1875 125 63 187 312 437 562 687 812 937 1062 1187 1312 1437 1562 1687 1812 1937 
1
1 
17
1 1001 1501 1251 1750 1376 1875 1126 1625 1064 1188 1313 1438 1563 1687 1812 1937 
11
1 1998 1951 1271 1905 1171 1098 912 1806 1030 1452 
1
1 ...

result:

ok correct (100 test cases)

Test #4:

score: 0
Accepted
time: 233ms
memory: 10032kb

input:

10
14914 14913
13959 13958
3643 3642
4582 4581
13378 13379
981 980
12901 12902
12355 12356
14692 14691
9670 9669
14632 14631
1441 1440
1367 1368
6237 6238
8297 8298
1021 1020
5096 5097
4773 4774
7778 7779
3013 3014
5536 5535
11621 11620
13904 13903
3050 3049
14179 14178
7471 7472
13380 13381
7403 74...

output:

65
1 14914 7457 3729 11185 1865 5593 9321 13049 933 2797 4661 6525 8389 10253 12117 13981 467 1399 2331 3263 4195 5127 6059 6991 7923 8855 9787 10719 11651 12583 13515 14447 234 700 1166 1632 2098 2564 3030 3496 3962 4428 4894 5360 5826 6292 6758 7224 7690 8156 8622 9088 9554 10020 10486 10952 11418...

result:

ok correct (10 test cases)

Test #5:

score: 0
Accepted
time: 74ms
memory: 9244kb

input:

10
20000 19999
6831 6760
15763 15900
10362 10184
5821 5880
17555 17389
16708 16574
11592 11436
186 209
19380 19313
8867 8718
12100 12237
16245 16110
18464 18568
4713 4665
17412 17578
18666 18750
4360 4322
12350 12502
4054 4103
2874 2849
8097 8202
14489 14639
1056 1016
13500 13581
2435 2391
199 173
8...

output:

11
1 20000 14594 19977 19093 7289 6991 18322 19941 15162 11213 
11
1 20000 19318 19460 19870 11158 11190 11087 10826 9522 18840 
12
1 20000 18475 10920 19502 16488 7494 7393 15331 19424 6416 7751 
11
1 19999 19966 16429 11541 14901 19783 10313 11965 17110 11460 
10
1 20000 19962 15491 12324 12963 15...

result:

ok correct (10 test cases)

Test #6:

score: 0
Accepted
time: 969ms
memory: 16316kb

input:

1
200000 199999
136649 136648
44943 44944
7148 7149
50332 50333
149967 149966
28976 28975
78549 78550
178698 178697
96434 96433
7859 7858
88976 88977
23348 23347
161682 161681
125393 125392
67892 67893
73592 73593
179054 179055
110841 110842
163714 163715
7982 7981
56309 56310
196486 196485
19176 19...

output:

257
1 200000 100000 150000 50000 75000 125000 175000 25000 37500 62500 87500 112500 137500 162500 187500 12500 18750 31250 43750 56250 68750 81250 93750 106250 118750 131250 143750 156250 168750 181250 193750 6250 9375 15625 21875 28125 34375 40625 46875 53125 59375 65625 71875 78125 84375 90625 968...

result:

ok correct (1 test case)

Test #7:

score: 0
Accepted
time: 518ms
memory: 16204kb

input:

1
200000 199999
58280 58281
132016 32016
45157 45158
35446 35445
158979 58979
185831 85831
74289 174289
195645 95645
31857 131857
168766 68766
95607 95606
39817 39818
58215 158215
74893 74894
18897 118897
63013 163013
58501 58502
94475 194475
77574 77573
152977 52977
3731 103731
20407 20408
186570 8...

output:

129
1 100001 150001 125001 175000 137501 187500 112501 162500 118751 131251 143751 168750 181250 193750 106251 156250 109376 115626 121876 128126 134376 140626 146876 159375 165625 171875 178125 184375 190625 196875 103126 153125 101564 104688 107813 110938 114063 117188 120313 123438 126563 129688 ...

result:

ok correct (1 test case)

Test #8:

score: 0
Accepted
time: 109ms
memory: 16212kb

input:

1
200000 199999
84088 84001
74829 74679
40726 41179
113019 113238
112813 113025
77336 77177
60908 61208
4521 4639
144249 144094
102763 102692
112856 113070
2428 2356
114005 113754
168454 168270
114538 114311
36802 36341
170182 170306
31641 32012
92503 92395
143570 143702
6871 6715
51503 51997
140883...

output:

12
1 199998 176521 172036 123183 133955 199002 94488 153146 132573 178642 103023 

result:

ok correct (1 test case)

Test #9:

score: 0
Accepted
time: 7ms
memory: 8928kb

input:

1000
11 19
8 11
4 11
2 11
2 3
8 3
6 1
6 4
11 5
5 3
10 8
7 10
4 7
3 9
5 1
5 7
3 6
10 1
11 7
2 9
70 109
32 69
26 15
65 46
70 62
50 23
17 16
15 31
2 23
18 11
48 57
19 29
52 42
26 31
7 1
53 66
5 69
58 20
59 38
3 4
9 53
7 56
52 66
66 28
22 51
2 6
22 35
5 28
25 51
27 13
26 56
10 50
53 56
60 48
67 33
61 23...

output:

1
1 
1
1 
1
1 
1
1 
1
1 
1
1 
1
1 
1
1 
1
1 
1
1 
1
1 
5
1 7 31 15 23 
1
1 
1
1 
1
1 
1
1 
1
1 
1
1 
1
1 
1
1 
1
1 
1
1 
1
1 
1
1 
1
1 
2
1 71 
1
1 
3
1 8 45 
1
1 
1
1 
1
1 
1
1 
1
1 
1
1 
1
1 
1
1 
3
1 9 34 
1
1 
1
1 
1
1 
1
1 
1
1 
1
1 
4
1 2 22 61 
1
1 
1
1 
3
1 53 19 
2
1 19 
1
1 
1
1 
1
1 
1
1 ...

result:

ok correct (1000 test cases)

Test #10:

score: 0
Accepted
time: 5ms
memory: 8420kb

input:

100
76 104
30 11
26 40
4 59
35 21
13 44
3 73
25 39
33 35
63 9
9 19
42 47
22 32
44 35
74 68
53 12
50 41
53 52
69 40
31 49
21 14
23 21
11 48
53 67
48 74
15 24
73 47
6 62
17 33
67 48
7 22
68 46
41 39
20 1
9 71
15 67
65 56
38 68
30 9
54 26
8 47
62 56
14 61
59 20
46 64
75 46
50 49
26 25
10 70
36 27
14 29...

output:

2
1 31 
1
1 
1
1 
1
1 
1
1 
1
1 
4
1 31 37 25 
1
1 
1
1 
2
1 16 
2
1 18 
1
1 
1
1 
1
1 
1
1 
1
1 
1
1 
1
1 
1
1 
1
1 
1
1 
1
1 
1
1 
1
1 
1
1 
1
1 
4
1 13 26 45 
1
1 
1
1 
1
1 
4
1 35 7 24 
1
1 
2
1 8 
1
1 
4
1 35 41 14 
1
1 
1
1 
1
1 
1
1 
1
1 
1
1 
1
1 
1
1 
1
1 
1
1 
1
1 
3
1 29 46 
1
1 
1
1 
1
1...

result:

ok correct (100 test cases)

Test #11:

score: 0
Accepted
time: 253ms
memory: 24340kb

input:

1
100000 1000000
70376 68374
69858 95507
48028 59467
27775 34161
858 86059
31468 25048
21313 82671
10952 18093
89665 50624
52742 11128
33566 41507
25913 22268
72131 67543
31387 42274
37347 75248
88261 56182
98982 47735
90574 62875
51228 53905
25218 4567
78201 22017
59613 68982
37239 43727
67620 9064...

output:

1
1 

result:

ok correct (1 test case)

Test #12:

score: 0
Accepted
time: 1227ms
memory: 16188kb

input:

1
200000 200000
89381 101645
141954 180063
180085 158544
12185 82120
161570 175869
36911 151360
49966 148400
135100 143084
145185 33970
82150 111213
93727 145916
42620 157053
26848 66273
178649 76101
5033 162413
173225 34259
30781 78979
9908 187256
87177 127185
7086 26040
178611 119947
198142 154140...

output:

256
1 42815 76480 85076 66705 70690 97940 147056 12559 58044 62234 63427 127841 143898 168748 172639 13995 18929 33760 34554 85655 85960 86792 96492 103031 108718 111739 119682 122452 128853 161919 170190 9264 14630 18867 43433 45084 46776 66517 71766 83511 86419 88751 90775 106798 108816 120044 122...

result:

ok correct (1 test case)

Test #13:

score: 0
Accepted
time: 1330ms
memory: 16312kb

input:

1
199809 199808
197381 136472
136472 160228
160228 128766
128766 197225
197225 160133
160133 105707
105707 66465
66465 199512
199512 185463
185463 176514
176514 175293
175293 178768
178768 158873
158873 199518
199518 161400
161400 172476
172476 188761
188761 197795
197795 152286
152286 177332
177332...

output:

446
1 344 661 663 719 2236 2852 2935 3546 4007 4577 5048 5481 5491 6475 7033 7316 8006 8199 8375 8863 9595 9610 10530 10598 10757 10928 11855 13368 13399 13616 15240 16725 16736 17712 17763 17773 18126 18282 18375 19061 19096 19290 19361 19409 19507 20026 20275 21327 22949 23159 23497 23924 24628 25...

result:

ok correct (1 test case)

Test #14:

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

input:

200
961 1663
2 1
3 1
3 20
4 1
4 7
5 1
5 41
5 60
6 1
7 1
7 49
8 1
9 1
10 1
11 1
12 1
12 32
13 1
13 59
14 1
14 3
15 1
15 12
15 52
16 1
16 12
16 63
17 1
17 10
18 1
18 36
19 1
19 26
19 29
20 1
20 60
20 63
21 1
22 1
23 1
23 3
23 27
23 39
24 1
25 1
26 1
26 58
26 60
27 1
27 22
27 36
28 1
29 1
30 1
31 1
31 ...

output:

1
1 
1
1 
1
1 
1
1 
1
1 
1
1 
1
1 
1
1 
1
1 
1
1 
1
1 
1
1 
1
1 
1
1 
1
1 
1
1 
1
1 
1
1 
1
1 
1
1 
1
1 
1
1 
1
1 
1
1 
1
1 
1
1 
1
1 
1
1 
1
1 
1
1 
1
1 
1
1 
1
1 
1
1 
1
1 
1
1 
1
1 
1
1 
1
1 
1
1 
1
1 
1
1 
1
1 
1
1 
1
1 
1
1 
1
1 
1
1 
1
1 
1
1 
1
1 
1
1 
1
1 
1
1 
1
1 
1
1 
1
1 
1
1 
1
1 
1
1 
...

result:

ok correct (200 test cases)

Test #15:

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

input:

1
160000 159999
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 51
5...

output:

2
1 801 

result:

ok correct (1 test case)

Test #16:

score: 0
Accepted
time: 38ms
memory: 13288kb

input:

1
1000 499500
605 964
559 738
492 518
943 284
96 23
214 486
487 262
347 436
394 422
270 113
984 149
134 203
881 328
316 643
610 922
802 67
903 194
600 584
629 62
692 370
420 442
600 563
438 452
556 785
112 809
555 241
937 635
178 746
67 900
777 247
490 842
971 12
315 60
703 467
201 13
872 503
24 201...

output:

1
1 

result:

ok correct (1 test case)

Test #17:

score: -100
Wrong Answer
time: 40ms
memory: 9000kb

input:

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

output:

3
1 14 27 
3
1 12 9 
2
1 26 
3
1 33 41 
3
1 19 15 
-1
2
1 29 
2
1 28 
3
1 12 10 
-1
-1
-1
3
1 34 48 
-1
-1
2
1 4 
3
1 29 32 
-1
-1
3
1 24 19 
3
1 49 6 
3
1 4 23 
3
1 14 27 
3
1 27 21 
3
1 42 15 
-1
2
1 38 
3
1 25 45 
-1
-1
3
1 43 21 
3
1 2 18 
-1
3
1 36 15 
3
1 8 31 
3
1 42 49 
-1
3
1 14 13 
3
1 29 ...

result:

wrong answer Integer -1 violates the range [1, 7] (test case 6)