QOJ.ac

QOJ

ID题目提交者结果用时内存语言文件大小提交时间测评时间
#294735#4829. Mark on a Graphucup-team055#0 1111ms4068kbC++232.3kb2023-12-30 16:15:502023-12-30 16:15:50

Judging History

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

  • [2023-12-30 16:15:50]
  • 评测
  • 测评结果:0
  • 用时:1111ms
  • 内存:4068kb
  • [2023-12-30 16:15:50]
  • 提交

answer

#include <bits/stdc++.h>
using namespace std;
using ll = long long;
const ll INF = LLONG_MAX / 4;
#define rep(i, a, b) for(ll i = a; i < b; i++)
#define all(a) begin(a), end(a)
template<class T> bool chmin(T& a, T b) { if(a <= b) return 0; a = b; return 1; }
template<class T> bool chmax(T& a, T b) { if(a >= b) return 0; a = b; return 1; }


mt19937 rnd(157);
int main() {
//    cin.tie(0)->sync_with_stdio(0);
    
    ll N, M;
    cin >> N >> M;
    
    vector g(N, vector<ll>{});
    rep(i, 0, M) {
        ll A, B;
        cin >> A >> B;
        A--; B--;
        g[A].push_back(B);
        g[B].push_back(A);
    }
    
    vector<ll> deg(N);
    rep(i, 0, N) deg[i] = g[i].size();
    ranges::sort(deg);
    deg.resize(10);
    
    rep(i, 0, 10) cerr << deg[i] << " \n"[i == 9];
    
    ll ans = -3000;
    rep(_, 0, 30000) {
        vector<ll> d(N);
        rep(m, 0, M * 2) d[rnd() % N]++;
        
        vector<ll> cnt(M * 2 + 1);
        for(ll x : d) cnt[x]++;
        
        vector<ll> A, B;
        [&]{
            rep(i, 0, M * 2 + 1) rep(_, 0, cnt[i]) {
                A.push_back(i);
                if(A.size() == 10) return;
            }
        }();
        
        if(deg <= A) {
            ans++;
            continue;
        }
        
        [&]{
            ll c = 10;
            rep(i, 0, M * 2 + 1) rep(_, 0, cnt[i]) {
                if(c) {
                    c--;
                    cnt[i + 1]++;
                }
                else {
                    B.push_back(i);
                    if(B.size() == 10) return;
                }
            }
        }();
        
        if(B <= deg) ans--;
    }
    
    cerr << ans << endl;
    
    if(ans < 0) {
        puts("ok");
        return 0;
    }
    
    puts("mark");
    puts("5");
    vector<ll> idx(N);
    rep(i, 0, N) idx[i] = i;
    
    auto add_edge = [&](ll i, ll j) -> bool {
        if(i == j) return 0;
        if(ranges::count(g[i], j)) return 0;
        g[i].push_back(j);
        g[j].push_back(i);
        
        cout << i + 1 << ' ' << j + 1 << endl;
        return 1;
    };
    
    rep(_, 0, 5) {
        ranges::shuffle(idx, rnd);
        ranges::sort(idx, less<>{}, [&](ll i) { return g[i].size(); });
        rep(j, 1, N) if(add_edge(idx[0], idx[j])) break;
    }
}

詳細信息

Test #1:

score: 100
Accepted
time: 783ms
memory: 3736kb

input:

1000 3560
603 151
415 20
102 569
895 552
678 734
24 614
689 518
440 223
751 919
223 433
711 551
502 634
706 583
812 501
514 535
780 751
720 530
532 384
888 139
864 791
292 675
171 881
30 592
464 557
280 299
654 650
894 335
250 532
792 10
83 969
118 771
579 300
852 983
243 940
957 939
817 889
911 319...

output:

mark
5
880 762
655 862
880 691
501 762
159 631

input:

1000 3565
626 777
295 222
665 338
534 338
682 101
706 833
155 950
656 841
184 95
383 221
86 259
815 771
37 355
759 167
402 763
582 250
693 401
224 873
974 302
521 380
368 12
676 977
920 351
175 831
511 688
553 125
506 102
70 757
464 840
87 733
956 373
600 53
178 201
182 394
201 34
975 583
557 937
25...

output:

ok

result:

ok all right

Test #2:

score: 100
Accepted
time: 409ms
memory: 3652kb

input:

1000 2000
457 335
160 497
464 992
892 255
853 3
308 301
970 363
541 299
89 418
425 128
626 827
603 854
484 874
755 295
607 483
798 552
356 850
320 357
254 940
675 901
168 525
301 636
520 555
773 910
343 701
889 966
218 529
909 950
71 64
682 284
424 138
721 792
670 544
386 72
654 909
725 235
592 437
...

output:

mark
5
861 114
613 623
493 224
279 633
585 508

input:

1000 2005
711 181
320 426
386 451
377 313
97 233
792 231
482 993
440 112
532 381
141 940
505 764
220 6
935 217
728 734
562 570
823 416
178 529
731 827
591 632
764 431
683 435
634 379
415 582
904 500
999 663
70 498
978 234
863 90
37 99
457 547
528 479
411 674
705 758
569 980
414 78
164 502
633 94
303...

output:

ok

result:

ok all right

Test #3:

score: 100
Accepted
time: 999ms
memory: 3820kb

input:

1000 5000
449 632
597 26
701 322
249 190
411 770
666 596
989 995
112 861
445 818
544 659
24 680
739 593
344 439
193 932
600 526
574 869
216 918
716 793
259 686
555 993
255 578
659 271
328 524
729 672
39 771
241 866
27 790
417 109
56 403
338 299
387 232
280 306
589 794
833 419
900 802
54 697
539 807
...

output:

mark
5
98 231
673 8
673 98
514 563
231 687

input:

1000 5005
551 153
334 992
476 219
208 346
392 91
866 127
150 361
435 592
24 378
341 805
699 578
106 119
985 570
128 182
917 352
647 685
128 752
345 596
992 354
13 247
309 736
890 582
471 552
669 461
326 549
305 830
923 926
138 888
321 569
57 143
207 306
5 115
344 235
781 688
421 274
129 462
530 649
...

output:

ok

result:

ok all right

Test #4:

score: 100
Accepted
time: 641ms
memory: 3772kb

input:

1000 3156
347 398
792 278
754 442
413 757
391 130
636 625
207 437
81 415
47 974
887 779
524 619
379 894
868 594
653 919
29 117
123 867
632 505
648 147
130 420
495 876
637 659
882 348
462 878
282 646
398 525
419 224
926 448
305 934
855 570
396 345
774 918
336 123
502 491
984 783
845 142
790 594
754 4...

output:

mark
5
964 256
823 271
755 964
518 639
737 564

input:

1000 3161
759 496
499 167
403 77
342 814
900 154
990 212
612 219
712 693
715 777
539 530
441 28
466 773
843 100
856 82
986 660
609 811
7 729
668 533
481 64
925 392
985 865
415 272
853 843
954 311
697 477
39 508
940 139
295 655
915 501
617 957
974 636
879 919
924 421
127 255
923 629
702 517
881 664
5...

output:

ok

result:

ok all right

Test #5:

score: 100
Accepted
time: 698ms
memory: 3780kb

input:

1000 3433
634 21
789 966
541 959
213 381
366 781
107 649
747 122
336 869
222 648
833 972
929 524
712 524
744 525
568 679
634 163
901 501
56 518
128 587
720 117
208 439
860 85
852 168
934 947
34 858
520 568
408 464
232 432
999 504
71 982
957 372
570 436
281 309
410 405
521 275
554 589
4 707
498 148
5...

output:

mark
5
214 330
104 4
343 1
214 473
691 214

input:

1000 3438
848 341
989 554
344 682
479 559
647 120
166 319
18 372
644 165
316 36
563 502
266 521
845 45
607 450
917 161
567 382
639 160
227 300
322 470
191 211
800 435
774 480
40 776
182 66
694 528
701 539
188 541
784 754
311 347
131 959
182 222
86 971
802 441
697 539
11 91
82 305
912 44
866 909
745 ...

output:

ok

result:

ok all right

Test #6:

score: 100
Accepted
time: 675ms
memory: 3912kb

input:

1000 3057
985 223
432 967
405 822
845 650
893 646
599 718
754 710
333 73
392 355
895 496
200 562
816 36
457 953
9 623
889 662
482 590
249 29
689 694
185 990
285 690
12 323
611 560
903 722
476 86
105 666
441 193
695 640
36 617
840 42
80 527
977 539
606 150
384 585
784 648
919 360
157 532
568 98
995 8...

output:

mark
5
28 7
119 74
112 385
330 40
535 28

input:

1000 3062
308 42
338 747
772 470
49 962
294 380
885 134
596 589
66 334
811 816
952 421
123 849
316 66
990 648
653 416
467 520
22 995
951 446
770 799
3 705
225 73
529 609
17 263
736 546
93 939
706 283
136 971
771 678
212 413
721 356
257 761
695 62
622 464
269 117
262 15
889 339
752 970
191 192
65 274...

output:

ok

result:

ok all right

Test #7:

score: 100
Accepted
time: 627ms
memory: 3792kb

input:

1000 3085
484 405
841 443
661 315
392 941
355 558
523 394
773 929
673 840
5 707
255 610
744 58
301 794
505 33
668 533
787 945
747 810
803 115
340 900
791 909
596 418
129 491
460 698
156 233
664 502
231 465
795 486
829 102
608 212
253 344
419 557
100 421
321 793
207 302
544 479
33 916
736 129
6 156
9...

output:

mark
5
729 193
181 72
808 658
377 249
601 341

input:

1000 3090
279 821
892 248
787 417
580 168
151 953
533 701
888 479
321 967
928 174
613 358
664 512
7 875
158 144
571 410
990 72
738 743
625 4
52 344
568 787
82 973
422 389
533 863
773 219
31 462
108 474
335 176
907 852
436 340
484 469
577 197
593 318
909 908
772 44
911 705
530 858
66 511
660 65
737 3...

output:

ok

result:

ok all right

Test #8:

score: 100
Accepted
time: 941ms
memory: 4048kb

input:

1000 4289
963 66
959 467
930 83
419 699
731 948
702 583
699 245
636 721
859 551
377 251
90 889
286 843
908 47
864 979
223 948
269 684
85 579
162 376
414 255
602 884
65 132
842 907
488 360
553 898
649 249
253 711
675 632
629 446
708 413
819 511
512 113
189 76
242 464
828 261
440 737
643 389
75 907
49...

output:

mark
5
51 682
231 682
51 130
69 588
352 430

input:

1000 4294
30 4
54 765
935 953
570 377
445 362
372 798
933 848
191 163
153 130
924 299
963 338
701 722
303 660
932 18
766 569
842 483
781 601
92 598
91 583
261 726
320 310
128 805
880 344
662 740
163 733
536 628
974 37
444 406
759 810
413 567
67 614
937 857
717 38
365 240
269 887
212 670
781 759
780 ...

output:

ok

result:

ok all right

Test #9:

score: 100
Accepted
time: 980ms
memory: 4068kb

input:

1000 4763
544 167
316 76
78 841
699 1
645 745
827 262
568 545
595 81
924 561
108 253
397 626
142 967
613 397
723 633
711 259
363 249
5 436
165 88
178 463
734 529
195 324
135 41
1000 136
215 967
371 638
588 753
542 909
633 106
537 852
111 232
303 500
892 461
868 300
772 667
40 172
956 575
613 163
933...

output:

mark
5
571 317
571 153
592 164
124 644
23 10

input:

1000 4768
450 532
910 207
875 103
49 254
17 389
342 809
271 691
347 307
470 80
193 960
395 936
145 907
53 837
918 904
320 308
500 72
278 444
827 50
29 187
596 379
467 116
150 90
70 248
516 163
767 976
429 287
66 306
667 585
470 562
122 148
510 872
634 793
583 713
530 497
638 202
251 757
604 112
640 ...

output:

ok

result:

ok all right

Test #10:

score: 100
Accepted
time: 926ms
memory: 3996kb

input:

1000 4250
747 446
769 425
773 753
217 298
217 4
514 774
752 3
905 857
532 410
224 250
367 33
29 541
809 996
76 960
25 603
532 600
518 304
546 95
735 413
312 476
83 534
157 62
170 836
668 976
244 557
972 860
828 170
975 468
677 714
800 170
530 191
216 930
242 728
318 505
269 162
579 963
769 822
171 4...

output:

mark
5
385 853
385 359
899 816
305 310
385 83

input:

1000 4255
106 864
703 85
233 301
835 726
218 598
9 55
874 52
868 466
378 512
83 566
128 210
156 300
524 36
309 278
617 487
756 966
345 404
394 79
495 250
872 342
604 701
899 920
19 728
545 697
31 580
45 388
984 195
404 912
377 959
344 270
805 578
848 742
265 174
683 398
349 425
184 94
579 201
240 49...

output:

ok

result:

ok all right

Test #11:

score: 100
Accepted
time: 685ms
memory: 3784kb

input:

1000 3336
161 745
81 702
879 347
452 553
809 32
359 925
984 783
558 366
611 89
948 530
565 496
123 348
534 986
991 511
322 407
6 878
20 897
188 150
527 440
487 333
218 572
597 575
308 684
50 780
900 451
763 785
210 682
964 992
811 537
537 167
320 133
523 899
629 732
435 281
826 405
868 567
201 858
2...

output:

mark
5
519 206
615 250
273 519
615 974
311 948

input:

1000 3341
95 599
727 514
936 900
161 211
1000 202
992 338
621 407
164 413
952 432
154 541
3 958
519 348
653 820
58 687
433 172
991 615
884 877
373 564
213 502
379 925
946 989
369 533
153 420
633 986
608 975
281 502
109 289
358 82
370 812
916 843
932 30
236 185
791 119
766 769
372 356
599 984
668 921...

output:

ok

result:

ok all right

Test #12:

score: 100
Accepted
time: 705ms
memory: 3996kb

input:

1000 3482
910 881
481 989
349 262
963 679
970 752
651 210
86 339
724 310
765 410
118 619
662 351
568 148
292 61
136 385
997 772
210 735
816 310
698 649
581 313
414 280
92 872
965 925
35 930
813 29
617 210
854 940
486 479
412 644
660 623
126 85
664 327
459 165
266 113
108 206
686 660
918 536
173 366
...

output:

mark
5
497 887
938 292
352 388
497 938
787 887

input:

1000 3487
216 73
26 960
88 633
818 543
650 60
89 532
504 706
396 473
179 605
144 22
436 698
298 109
642 71
568 322
464 443
680 920
711 384
324 455
487 770
327 666
344 549
733 906
544 682
433 624
602 240
189 630
262 218
625 812
631 840
452 346
543 492
723 843
539 862
97 511
616 452
89 391
376 261
852...

output:

ok

result:

ok all right

Test #13:

score: 100
Accepted
time: 440ms
memory: 3724kb

input:

1000 2141
358 723
692 581
753 295
864 391
984 462
525 271
508 897
739 537
124 933
577 499
863 37
279 622
361 605
454 951
527 837
1 224
641 404
479 220
931 126
182 719
464 451
805 452
529 800
292 689
17 320
728 790
967 41
412 752
276 535
643 636
611 56
802 414
861 603
857 722
1000 584
435 118
266 392...

output:

mark
5
496 609
853 968
255 184
696 149
491 925

input:

1000 2146
429 482
271 721
324 320
340 542
774 998
33 221
886 741
184 960
211 898
433 201
399 745
306 334
422 376
816 821
562 501
414 613
27 609
355 356
849 152
453 625
796 98
412 425
760 277
633 559
768 49
473 761
315 26
735 379
131 310
110 328
491 753
589 788
597 489
34 710
292 587
623 686
308 967
...

output:

ok

result:

ok all right

Test #14:

score: 100
Accepted
time: 630ms
memory: 3908kb

input:

1000 2950
244 361
694 442
547 577
545 866
488 207
888 997
263 45
850 200
30 927
195 510
274 582
467 158
664 667
880 573
522 986
736 375
206 326
999 940
875 609
151 161
602 673
664 200
827 579
12 190
300 249
95 502
951 317
669 243
350 841
692 572
619 302
955 999
480 891
109 779
198 893
105 442
214 14...

output:

mark
5
58 113
79 794
58 765
387 672
611 789

input:

1000 2955
350 585
350 530
266 289
160 759
799 65
883 116
867 14
353 939
816 753
637 187
865 924
204 294
666 760
89 995
256 29
570 257
526 578
293 939
181 541
960 66
878 60
793 916
770 761
857 816
3 292
914 367
462 578
262 59
604 329
307 590
933 975
293 776
248 131
279 833
841 15
103 209
260 541
903 ...

output:

ok

result:

ok all right

Test #15:

score: 100
Accepted
time: 556ms
memory: 3740kb

input:

1000 2725
336 461
575 6
961 482
496 574
134 336
671 452
172 957
633 89
909 334
222 155
90 660
201 950
436 671
726 683
487 356
536 389
107 844
403 732
550 608
607 54
718 438
960 144
710 278
398 747
152 501
86 385
34 251
309 822
773 321
329 213
897 948
356 401
290 329
278 591
683 454
122 523
729 436
4...

output:

mark
5
802 906
923 62
328 364
553 249
4 490

input:

1000 2730
863 314
669 860
82 966
129 461
32 303
760 450
155 278
999 899
933 304
314 138
160 662
750 49
195 996
327 166
508 819
228 343
210 880
707 193
391 89
355 484
656 314
32 566
595 214
534 10
583 576
489 47
711 969
385 891
848 900
51 224
531 54
455 958
29 539
915 37
605 460
871 14
324 244
236 91...

output:

ok

result:

ok all right

Test #16:

score: 100
Accepted
time: 604ms
memory: 3768kb

input:

1000 2812
357 725
462 948
927 875
21 284
52 197
457 876
744 315
990 255
660 522
51 971
392 275
736 77
131 216
581 438
495 271
965 111
376 89
824 363
628 13
33 585
836 144
791 404
916 588
668 243
960 335
505 368
744 264
332 893
65 320
205 81
929 44
135 224
306 351
938 505
70 927
825 634
161 492
434 1...

output:

mark
5
643 401
25 984
537 25
997 195
766 811

input:

1000 2817
74 677
651 134
493 579
219 117
383 514
308 367
81 900
400 951
176 302
59 298
116 403
873 525
933 912
558 187
592 804
99 897
186 353
514 445
171 160
451 788
47 207
722 703
391 80
694 472
362 535
685 389
524 740
279 930
834 898
81 394
961 353
603 523
528 805
172 296
177 897
437 214
736 205
7...

output:

ok

result:

ok all right

Test #17:

score: 100
Accepted
time: 581ms
memory: 3708kb

input:

1000 2616
518 38
164 144
301 140
711 11
36 636
443 779
107 901
467 922
759 675
229 276
467 880
975 435
382 460
238 663
639 927
74 953
777 326
689 944
152 237
501 789
795 889
95 376
390 401
279 64
520 803
273 292
333 454
202 485
860 54
872 641
101 951
236 726
464 847
992 656
576 565
739 176
562 327
2...

output:

mark
5
411 743
758 184
449 282
115 406
827 708

input:

1000 2621
669 76
738 336
294 727
281 256
323 454
928 12
993 131
80 917
373 709
789 477
256 233
513 977
960 465
92 745
45 588
947 939
959 552
328 885
102 949
432 384
853 545
224 152
491 734
530 123
265 461
389 823
124 78
230 959
623 718
22 348
763 680
81 20
610 950
946 36
230 213
642 789
481 154
572 ...

output:

ok

result:

ok all right

Test #18:

score: 100
Accepted
time: 1111ms
memory: 3860kb

input:

1000 4792
659 787
666 143
711 116
742 958
604 434
293 882
175 28
557 753
106 808
527 599
942 249
843 109
174 76
429 255
415 489
463 540
878 235
688 87
629 402
927 418
704 734
886 463
702 992
570 370
492 865
795 889
638 594
887 203
732 896
610 492
960 422
44 255
442 448
426 697
862 351
318 277
783 22...

output:

mark
5
182 579
286 187
271 330
103 891
182 739

input:

1000 4797
72 88
722 243
20 260
316 598
877 559
772 373
861 329
340 412
196 107
888 956
2 871
433 903
500 615
697 232
307 397
379 887
53 406
107 475
448 100
735 622
733 70
592 769
43 142
256 447
326 527
863 650
144 117
952 884
550 612
476 304
30 70
555 349
697 402
849 98
838 117
959 138
486 627
454 8...

output:

ok

result:

ok all right

Test #19:

score: 0
Wrong Answer on the first run

input:

1000 3724
513 194
958 159
936 285
493 34
668 957
824 152
450 421
92 170
416 782
546 100
698 433
299 741
261 975
661 408
4 927
789 856
52 784
541 618
99 780
527 957
618 74
440 321
839 496
360 484
71 21
149 302
25 505
240 587
584 736
490 934
817 867
682 287
882 528
985 852
201 46
254 112
862 582
379 3...

output:

ok

input:


output:


result:

wrong answer Token "ok" doesn't correspond to pattern "mark"