QOJ.ac

QOJ

ID题目提交者结果用时内存语言文件大小提交时间测评时间
#294845#4829. Mark on a Graphucup-team1055#0 2ms3980kbC++206.8kb2023-12-30 16:57:012023-12-30 16:57:01

Judging History

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

  • [2023-12-30 16:57:01]
  • 评测
  • 测评结果:0
  • 用时:2ms
  • 内存:3980kb
  • [2023-12-30 16:57:01]
  • 提交

answer

#line 2 "/Users/noya2/Desktop/Noya2_library/template/template.hpp"
using namespace std;

#include<bits/stdc++.h>
#line 1 "/Users/noya2/Desktop/Noya2_library/template/inout_old.hpp"
namespace noya2 {

template <typename T, typename U>
ostream &operator<<(ostream &os, const pair<T, U> &p){
    os << p.first << " " << p.second;
    return os;
}
template <typename T, typename U>
istream &operator>>(istream &is, pair<T, U> &p){
    is >> p.first >> p.second;
    return is;
}

template <typename T>
ostream &operator<<(ostream &os, const vector<T> &v){
    int s = (int)v.size();
    for (int i = 0; i < s; i++) os << (i ? " " : "") << v[i];
    return os;
}
template <typename T>
istream &operator>>(istream &is, vector<T> &v){
    for (auto &x : v) is >> x;
    return is;
}

void in() {}
template <typename T, class... U>
void in(T &t, U &...u){
    cin >> t;
    in(u...);
}

void out() { cout << "\n"; }
template <typename T, class... U, char sep = ' '>
void out(const T &t, const U &...u){
    cout << t;
    if (sizeof...(u)) cout << sep;
    out(u...);
}

template<typename T>
void out(const vector<vector<T>> &vv){
    int s = (int)vv.size();
    for (int i = 0; i < s; i++) out(vv[i]);
}

struct IoSetup {
    IoSetup(){
        cin.tie(nullptr);
        ios::sync_with_stdio(false);
        cout << fixed << setprecision(15);
        cerr << fixed << setprecision(7);
    }
} iosetup_noya2;

} // namespace noya2
#line 1 "/Users/noya2/Desktop/Noya2_library/template/const.hpp"
namespace noya2{

const int iinf = 1'000'000'007;
const long long linf = 2'000'000'000'000'000'000LL;
const long long mod998 =  998244353;
const long long mod107 = 1000000007;
const long double pi = 3.14159265358979323;
const vector<int> dx = {0,1,0,-1,1,1,-1,-1};
const vector<int> dy = {1,0,-1,0,1,-1,-1,1};
const string ALP = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
const string alp = "abcdefghijklmnopqrstuvwxyz";
const string NUM = "0123456789";

void yes(){ cout << "Yes\n"; }
void no(){ cout << "No\n"; }
void YES(){ cout << "YES\n"; }
void NO(){ cout << "NO\n"; }
void yn(bool t){ t ? yes() : no(); }
void YN(bool t){ t ? YES() : NO(); }

} // namespace noya2
#line 1 "/Users/noya2/Desktop/Noya2_library/template/utils.hpp"
namespace noya2{

unsigned long long inner_binary_gcd(unsigned long long a, unsigned long long b){
    if (a == 0 || b == 0) return a + b;
    int n = __builtin_ctzll(a); a >>= n;
    int m = __builtin_ctzll(b); b >>= m;
    while (a != b) {
        int mm = __builtin_ctzll(a - b);
        bool f = a > b;
        unsigned long long c = f ? a : b;
        b = f ? b : a;
        a = (c - b) >> mm;
    }
    return a << min(n, m);
}

template<typename T> T gcd_fast(T a, T b){ return static_cast<T>(inner_binary_gcd(abs(a),abs(b))); }

long long sqrt_fast(long long n) {
    if (n <= 0) return 0;
    long long x = sqrt(n);
    while ((x + 1) * (x + 1) <= n) x++;
    while (x * x > n) x--;
    return x;
}

template<typename T> T floor_div(const T n, const T d) {
    assert(d != 0);
    return n / d - static_cast<T>((n ^ d) < 0 && n % d != 0);
}

template<typename T> T ceil_div(const T n, const T d) {
    assert(d != 0);
    return n / d + static_cast<T>((n ^ d) >= 0 && n % d != 0);
}

template<typename T> void uniq(vector<T> &v){
    sort(v.begin(),v.end());
    v.erase(unique(v.begin(),v.end()),v.end());
}

template <typename T, typename U> inline bool chmin(T &x, U y) { return (y < x) ? (x = y, true) : false; }

template <typename T, typename U> inline bool chmax(T &x, U y) { return (x < y) ? (x = y, true) : false; }

template<typename T> inline bool range(T l, T x, T r){ return l <= x && x < r; }

} // namespace noya2
#line 8 "/Users/noya2/Desktop/Noya2_library/template/template.hpp"

#define rep(i,n) for (int i = 0; i < (int)(n); i++)
#define repp(i,m,n) for (int i = (m); i < (int)(n); i++)
#define reb(i,n) for (int i = (int)(n-1); i >= 0; i--)
#define all(v) (v).begin(),(v).end()

using ll = long long;
using ld = long double;
using uint = unsigned int;
using ull = unsigned long long;
using pii = pair<int,int>;
using pll = pair<ll,ll>;
using pil = pair<int,ll>;
using pli = pair<ll,int>;

namespace noya2{

/* ~ (. _________ . /) */

}

using namespace noya2;


#line 2 "c.cpp"

#line 2 "/Users/noya2/Desktop/Noya2_library/misc/rng.hpp"

#line 4 "/Users/noya2/Desktop/Noya2_library/misc/rng.hpp"

namespace noya2 {

// [0, 2^64 - 1)
ull rng() {
  static ull _x = 88172645463325252UL;
  return _x ^= _x << 7, _x ^= _x >> 9;
}

// [l, r]
ll rng(ll l, ll r) {
  assert(l <= r);
  return l + rng() % ull(r - l + 1);
}

// [l, r)
ll randint(ll l, ll r) {
  assert(l < r);
  return l + rng() % ull(r - l);
}

// [0.0, 1.0)
ld rnd() { return rng() * 5.42101086242752217004e-20; }
// [l, r)
ld rnd(ld l, ld r) {
  assert(l < r);
  return l + rnd() * (r - l);
}

} // namespace noya2
#line 4 "c.cpp"

ll tot = 0, cnt = 0;
map<int,ll> mp;

void jikken(){
    int n = 1000;
    int m = 5000;
    set<pii> st;
    vector<int> deg(n,0);
    rep(tt,m){
        while (true){
            int u = randint(0,n);
            int v = randint(0,n);
            if (u > v) swap(u,v);
            if (u == v) continue;
            if (st.contains(pii(u,v))) continue;
            st.insert(pii(u,v));
            deg[u]++;
            deg[v]++;
            break;
        }
    }
    int mi = iinf, ma = -1;
    rep(i,n){
        chmin(mi,deg[i]);
        chmax(ma,deg[i]);
    }
    tot += ma;
    cnt += 1;
    mp[ma]++;
}

void solve(){
    // jikken(); return ;
    int n, m; in(n,m);
    vector<int> deg(n,0);
    set<pii> st;
    rep(i,m){
        int u, v; in(u,v); u--, v--;
        if (u > v) swap(u,v);
        st.insert(pii(u,v));
        deg[u]++;
        deg[v]++;
    }
    vector<int> ids(n); iota(all(ids),0);
    sort(all(ids),[&](int l, int r){
        return deg[l] > deg[r];
    });
    if (deg[ids[0]] != deg[ids[1]] && deg[ids[1]] != deg[ids[2]]){
        int u = ids[0];
        int v = ids[1];
        if (u > v) swap(u,v);
        if (st.contains(pii(u,v))){
            out("ok");
            return ;
        }
    }
    vector<pii> add;
    if (deg[ids[1]] == deg[ids[2]]){
        add.emplace_back(ids[0],ids[n-1]);
        add.emplace_back(ids[1],ids[n-2]);
    }
    if (deg[ids[0]] == deg[ids[1]]){
        add.emplace_back(ids[0],ids[n-3]);
    }
    {
        int u = ids[0];
        int v = ids[1];
        if (u > v) swap(u,v);
        if (!st.contains(pii(u,v))){
            add.emplace_back(u,v);
        }
    }
    out("mark");
    out(add.size());
    for (auto [u, v] : add){
        out(u+1,v+1);
    }
}

int main(){
    int t = 1; // in(t);
    while (t--) { solve(); }
    // out(tot,cnt);
    // out(ld(tot)/ld(cnt));
    // for (auto [ma, c] : mp) out(ma,c);
}

詳細信息

Test #1:

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

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
733 762
310 733

input:

1000 3562
950 554
396 217
466 376
330 865
163 684
50 833
648 137
781 1000
184 95
844 383
831 175
48 355
279 904
167 379
278 494
582 250
506 567
209 500
64 422
253 49
663 368
964 882
292 403
831 643
999 851
125 553
102 506
827 437
726 125
932 719
641 339
721 655
102 790
267 793
201 155
186 576
898 36...

output:

ok

result:

ok all right

Test #2:

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

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
2
747 114
747 761

input:

1000 2002
610 181
640 320
118 165
377 313
621 518
358 293
525 365
912 594
562 553
541 519
660 299
428 406
670 489
127 722
130 848
332 232
333 220
537 547
522 665
610 982
842 663
236 995
318 614
193 126
257 999
906 319
276 553
532 563
3 629
982 741
685 786
411 279
165 960
167 507
489 385
605 104
965 ...

output:

ok

result:

ok all right

Test #3:

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

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
3
869 673
539 98
539 869

input:

1000 5003
551 203
786 996
796 219
572 208
802 412
127 305
923 361
479 435
24 121
75 559
605 578
947 106
570 156
365 128
352 917
729 647
128 110
345 309
992 501
13 996
854 986
582 609
245 471
461 754
865 326
1 934
62 839
112 888
373 321
533 744
176 306
461 115
566 344
781 337
274 421
117 462
634 530
...

output:

ok

result:

ok all right

Test #4:

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

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
115 823
115 418

input:

1000 3158
540 769
439 852
901 654
845 121
154 787
213 734
215 276
159 469
266 325
123 439
16 909
438 346
810 843
150 447
841 721
811 101
642 355
125 480
437 788
775 174
865 396
418 309
399 885
287 402
786 474
456 465
441 28
766 878
754 994
290 668
225 18
34 879
394 426
639 127
836 887
748 615
334 74...

output:

ok

result:

ok all right

Test #5:

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

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
631 797

input:

1000 3434
901 246
724 301
416 864
342 660
387 898
735 811
356 790
390 457
783 903
899 769
437 114
257 179
750 607
514 238
669 573
109 13
905 300
341 848
446 656
992 861
957 638
776 682
505 114
117 713
892 978
669 188
683 655
5 358
753 318
157 802
671 425
441 167
30 188
844 42
82 762
513 661
6 97
465...

output:

ok

result:

ok all right

Test #6:

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

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
1
134 393

input:

1000 3058
29 48
203 26
942 210
954 309
294 719
280 107
14 443
241 921
666 607
733 571
432 91
921 572
990 304
552 44
520 921
243 22
4 640
623 947
42 660
877 225
45 146
263 667
509 515
450 626
603 573
971 732
337 771
237 348
652 580
168 116
256 454
75 314
250 947
138 624
995 567
719 835
191 934
578 21...

output:

ok

result:

ok all right

Test #7:

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

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
1
581 807

input:

1000 3086
665 821
248 628
417 787
95 734
953 941
570 533
479 888
883 619
174 625
613 554
480 160
570 398
86 617
76 6
518 662
743 672
728 94
896 52
778 568
474 293
977 247
701 533
219 773
31 664
108 860
640 186
907 603
436 948
289 874
197 710
396 963
453 369
843 44
765 772
200 347
595 330
959 65
53 3...

output:

ok

result:

ok all right

Test #8:

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

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
1
611 622

input:

1000 4290
792 673
929 54
935 953
570 751
368 586
798 495
123 259
236 163
75 999
610 299
518 338
495 999
636 660
410 254
84 766
445 483
832 382
680 554
74 443
792 621
318 320
668 204
433 740
662 198
240 752
628 722
278 215
62 755
404 955
102 406
67 129
602 33
681 306
781 759
93 257
425 670
538 759
98...

output:

ok

result:

ok all right

Test #9:

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

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
240 571
148 317
148 240

input:

1000 4766
450 16
910 547
103 875
611 624
918 17
625 777
944 271
347 759
156 950
238 193
936 172
99 591
641 837
904 918
320 308
500 384
444 38
802 50
416 187
23 379
528 116
924 90
295 70
78 971
408 767
429 424
66 440
667 124
847 395
933 148
31 872
880 793
396 746
537 388
638 204
757 414
627 862
93 21...

output:

ok

result:

ok all right

Test #10:

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

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
3
384 385
170 359
170 384

input:

1000 4253
106 864
622 703
233 579
835 726
598 149
55 9
874 52
466 868
512 378
83 566
308 542
512 152
524 36
278 309
242 600
847 8
345 404
524 394
250 495
872 342
701 604
920 899
19 728
697 545
31 580
388 45
195 984
404 912
377 473
270 344
805 578
742 848
174 919
683 398
349 425
985 94
201 579
240 49...

output:

ok

result:

ok all right

Test #11:

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

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
3
299 519
359 206
299 359

input:

1000 3339
163 836
727 514
334 788
161 211
202 297
992 338
407 621
413 164
648 432
541 154
958 909
351 519
438 440
684 58
105 424
540 991
576 77
373 564
213 220
925 379
946 989
369 533
153 420
269 997
693 608
502 281
109 289
358 82
812 370
918 802
30 932
236 185
791 119
766 769
356 736
599 984
668 92...

output:

ok

result:

ok all right

Test #12:

score: 0
Wrong Answer on the first run

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:

ok

input:


output:


result:

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