QOJ.ac

QOJ

IDProblemSubmitterResultTimeMemoryLanguageFile sizeSubmit timeJudge time
#323943#4829. Mark on a Graphhotboy27030 2ms4064kbC++142.5kb2024-02-10 14:29:072024-02-10 14:29:08

Judging History

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

  • [2024-02-10 14:29:08]
  • 评测
  • 测评结果:0
  • 用时:2ms
  • 内存:4064kb
  • [2024-02-10 14:29:07]
  • 提交

answer

#include<bits/stdc++.h>
using namespace std;
using ll = long long;
using ull = unsigned long long;
using ld = long double;
#define pll pair <ll,ll>
#define fi first
#define se second
#define sz(a) (ll((a).size()))
#define BIT(mask,i) (((mask) >> (i))&1LL)
#define MASK(i) (1LL << (i))
ll n,m;
vector <ll> g[1010];
const ll check = 100;
int main(){
    ios_base::sync_with_stdio(0);cin.tie(nullptr);cout.tie(nullptr);
    cin>>n>>m;
    vector <pll> edge;
    for (ll i = 1;i <= m;i ++){
        ll u,v;
        cin>>u>>v;
        g[u].push_back(v);
        g[v].push_back(u);
        edge.push_back({u,v});
    }
    ll cnt[check]={};
    for (ll i = 1;i <= n;i ++){
        if (sz(g[i])<check)cnt[sz(g[i])]^=1;
    }
    ll sum = 0;
    for (ll i = 0;i < check;i ++)sum += cnt[i];
    if (sum>5){
        cout<<"mark\n";
        vector <pll> del;
        for (ll i = 0;i < 5;i ++){
            ll best = sum;
            pll nw = {0,0};
            for (ll j = 1;j <= n;j ++){
                for (auto x:g[j]){
                    vector <ll> dif({sz(g[j]),sz(g[j])-1,sz(g[x]),sz(g[x])-1});
                    for (auto y:dif){
                        sum -= cnt[y];
                        cnt[y]^=1;
                        sum += cnt[y];
                    }
                    if (sum < best){
                        best = sum;
                        nw = {j,x};
                    }
                    for (auto y:dif){
                        sum -= cnt[y];
                        cnt[y]^=1;
                        sum += cnt[y];
                    }
                }
            }
            if (nw.fi != 0){
                ll j,x;
                j = nw.fi,x=nw.se;
                del.push_back({j,x});
                vector <ll> dif({sz(g[j]),sz(g[j])-1,sz(g[x]),sz(g[x])-1});
                for (auto y:dif){
                    sum -= cnt[y];
                    cnt[y]^=1;
                    sum += cnt[y];
                }
                for (ll k = 0;k < sz(g[j]);k++){
                    if (g[j][k]==x){
                        g[j].erase(g[j].begin()+k);
                    }
                }
                for (ll k = 0;k < sz(g[x]);k++){
                    if (g[x][k]==j){
                        g[x].erase(g[x].begin()+k);
                    }
                }

            }
        }
//        cout<<sum<<'\n';
        cout<<sz(del)<<'\n';
        for (auto x:del)cout<<x.fi<<' '<<x.se<<'\n';
    }
    else{
        cout<<"ok";
    }
//    cout<<even<<'\n';
}


Details

Tip: Click on the bar to expand more detailed information

Test #1:

score: 100
Accepted
time: 2ms
memory: 3852kb

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
2
10 792
50 611

input:

1000 3558
397 554
396 217
262 376
854 911
576 186
50 833
648 137
232 739
184 286
383 34
83 863
355 48
930 18
167 755
283 323
250 209
722 567
667 500
215 595
253 49
479 363
51 964
263 292
831 175
375 735
125 692
102 654
437 827
125 457
932 719
551 339
353 721
379 167
163 430
272 547
620 759
360 898
5...

output:

ok

result:

ok all right

Test #2:

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

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
1
3 79

input:

1000 1999
105 843
163 659
960 813
529 342
135 173
449 19
419 602
64 899
529 532
945 554
541 273
787 159
864 438
668 192
257 673
711 293
297 178
40 577
398 371
541 489
620 456
292 845
727 413
860 613
111 348
945 853
810 564
636 485
99 263
25 430
450 309
586 656
962 856
770 884
78 885
724 896
965 261
...

output:

ok

result:

ok all right

Test #3:

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

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
2
8 371
5 361

input:

1000 4998
551 533
737 842
283 299
171 208
385 340
170 427
361 374
747 56
476 544
914 977
689 276
45 106
858 748
442 843
152 387
647 865
396 945
345 377
684 171
287 864
835 341
749 138
380 529
242 116
792 467
953 215
286 464
364 956
458 321
279 533
419 141
599 543
98 228
74 870
246 797
256 532
649 53...

output:

ok

result:

ok all right

Test #4:

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

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
2
15 236
394 745

input:

1000 3154
496 759
439 344
654 432
845 300
870 154
602 290
215 366
162 159
266 723
439 406
59 672
433 346
494 605
36 150
660 986
811 609
455 941
168 812
685 111
174 108
761 5
873 75
885 980
515 287
966 786
456 849
28 31
766 386
512 754
668 533
636 974
919 879
841 423
529 710
836 178
597 884
741 563
2...

output:

ok

result:

ok all right

Test #5:

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

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
1
492 631

input:

1000 3432
246 901
837 301
774 416
660 342
337 898
735 811
560 790
885 457
903 783
899 730
437 344
853 310
607 750
235 514
669 184
109 13
300 103
341 848
446 656
233 861
957 638
258 511
505 99
713 117
331 892
632 946
856 655
879 5
318 15
7 157
671 107
19 431
632 515
844 42
403 916
661 513
895 6
846 6...

output:

ok

result:

ok all right

Test #6:

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

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
4
2 72
4 185
97 393
31 983

input:

1000 3053
48 645
325 243
13 391
875 433
864 902
719 835
465 222
976 752
40 969
93 939
71 263
976 625
159 279
790 346
42 530
364 235
663 570
851 701
262 927
114 47
274 984
449 761
380 294
455 626
114 749
636 554
783 717
595 71
485 867
711 366
925 268
129 530
795 94
903 310
148 22
44 552
151 798
495 6...

output:

ok

result:

ok all right

Test #7:

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

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
3
1 408
7 553
75 581

input:

1000 3082
983 919
959 2
417 787
734 974
726 955
514 995
888 479
531 883
165 287
613 327
160 751
570 447
309 54
76 136
893 757
719 775
77 875
368 56
568 778
293 474
667 977
533 570
773 219
845 928
188 155
640 785
211 247
678 978
289 391
968 617
963 120
369 649
843 44
877 765
826 347
595 856
879 370
3...

output:

ok

result:

ok all right

Test #8:

score: 100
Accepted
time: 2ms
memory: 3868kb

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
4
1 606
5 622
79 173
48 198

input:

1000 4285
334 519
869 787
893 534
413 493
135 198
757 630
268 311
838 783
782 202
717 145
338 726
913 999
698 510
888 401
371 118
941 426
479 83
708 600
603 733
496 756
985 711
580 453
847 433
937 293
18 141
723 45
591 427
613 659
583 317
229 838
490 641
474 595
182 659
682 110
931 274
424 186
852 9...

output:

ok

result:

ok all right

Test #9:

score: 100
Accepted
time: 2ms
memory: 3896kb

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
3
2 570
5 115
13 240

input:

1000 4760
491 979
131 467
220 793
624 556
275 833
625 783
147 3
440 545
156 743
617 710
686 895
591 474
759 837
789 971
891 38
524 500
604 444
857 515
252 309
969 522
536 313
636 90
578 370
912 94
261 767
787 841
803 78
648 298
847 744
148 479
872 341
149 585
396 746
909 388
726 116
680 162
38 539
5...

output:

ok

result:

ok all right

Test #10:

score: 0
Wrong Answer
time: 2ms
memory: 4064kb

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
2
1 999
70 954

input:

1000 4248
749 948
102 703
776 233
352 21
334 634
581 276
874 320
193 639
336 248
83 447
593 343
927 685
36 524
681 803
617 487
837 144
608 173
290 771
159 327
188 342
920 373
952 480
164 728
864 568
787 412
10 56
224 402
420 11
353 377
970 711
35 380
848 742
264 979
490 29
306 237
371 94
836 386
413...

output:

mark
0

result:

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