QOJ.ac
QOJ
ID | Problem | Submitter | Result | Time | Memory | Language | File size | Submit time | Judge time |
---|---|---|---|---|---|---|---|---|---|
#294719 | #4829. Mark on a Graph | ucup-team055# | 0 | 1074ms | 4012kb | C++23 | 2.3kb | 2023-12-30 16:08:13 | 2023-12-30 16:08:13 |
Judging History
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;
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 = 4500;
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;
}
}
Details
Tip: Click on the bar to expand more detailed information
Test #1:
score: 100
Accepted
time: 724ms
memory: 4012kb
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 655 862 691 762 501 880 214 463 73
input:
1000 3565 626 777 295 222 665 338 534 338 682 101 50 833 155 950 656 841 184 95 383 221 450 259 815 771 335 355 759 167 402 763 582 250 950 401 224 873 974 302 521 246 368 12 676 977 920 351 643 831 511 688 553 125 506 102 70 757 464 840 87 733 355 37 600 53 178 201 182 394 201 34 951 583 557 937 25...
output:
ok
result:
ok all right
Test #2:
score: 100
Accepted
time: 405ms
memory: 3700kb
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 250 279 345 585 508 224 633 861 623 613
input:
1000 2005 610 181 320 426 386 831 377 551 97 233 106 231 643 993 440 112 246 835 141 940 505 764 220 6 935 217 728 734 562 570 651 962 699 108 731 324 591 632 764 431 683 435 634 379 415 582 904 500 999 663 70 498 978 234 532 563 608 99 457 547 528 479 411 674 235 758 569 980 414 78 164 502 633 94 3...
output:
ok
result:
ok all right
Test #3:
score: 100
Accepted
time: 1002ms
memory: 3996kb
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 231 673 98 231 514 98 8 673 563 143
input:
1000 5005 551 153 334 992 476 219 208 346 392 91 581 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 846 461 326 688 305 830 923 926 138 888 321 569 405 143 207 306 5 115 344 235 781 688 325 544 129 462 530 649...
output:
ok
result:
ok all right
Test #4:
score: 100
Accepted
time: 641ms
memory: 3708kb
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 518 639 564 747 52 271 737 256 823
input:
1000 3161 759 496 499 167 403 77 342 814 900 154 990 212 612 359 712 549 715 777 539 530 441 28 468 773 111 685 856 82 986 660 609 811 7 738 668 533 481 64 925 392 529 865 415 272 853 843 954 311 697 336 703 45 453 249 295 871 861 501 617 957 974 636 879 919 924 421 127 255 923 765 125 517 881 664 5...
output:
ok
result:
ok all right
Test #5:
score: 100
Accepted
time: 691ms
memory: 4004kb
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 4 214 104 330 343 1 473 691 924
input:
1000 3438 246 901 989 554 606 682 479 559 190 120 735 811 18 372 644 186 316 36 563 872 266 521 257 956 607 450 917 161 221 669 639 160 925 300 341 848 191 211 800 162 774 480 40 776 182 323 694 528 460 539 188 395 169 754 311 398 131 959 182 263 879 971 802 441 188 541 11 91 82 169 912 44 338 909 4...
output:
ok
result:
ok all right
Test #6:
score: 100
Accepted
time: 623ms
memory: 3752kb
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 7 28 133 535 7 563 74 112 40 330
input:
1000 3062 308 42 689 747 772 470 49 962 294 380 226 107 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 46 475 93 939 706 283 136 971 771 678 212 413 721 356 257 761 695 62 622 464 269 117 262 15 889 339 431 970 191 192 65 274 ...
output:
ok
result:
ok all right
Test #7:
score: 100
Accepted
time: 727ms
memory: 3772kb
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 193 729 729 341 181 193 658 374 377 249
input:
1000 3090 279 821 727 135 787 417 580 168 151 953 533 701 888 479 321 967 596 174 613 358 664 512 7 875 158 144 571 410 990 935 954 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 393 385 909 488 772 44 911 705 530 858 66 511 660 65 737 ...
output:
ok
result:
ok all right
Test #8:
score: 100
Accepted
time: 860ms
memory: 3820kb
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 682 231 51 130 588 430 231 352 682 69
input:
1000 4294 30 4 54 539 935 953 570 377 445 362 372 798 933 848 191 163 153 130 924 299 963 338 701 722 154 660 932 18 766 569 842 483 781 601 92 598 91 583 261 726 320 310 128 31 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 2...
output:
ok
result:
ok all right
Test #9:
score: 100
Accepted
time: 1074ms
memory: 3872kb
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 317 571 164 124 317 224 10 644 140 153
input:
1000 4768 450 532 910 207 599 103 49 254 17 389 342 809 271 691 347 788 470 80 193 960 395 936 145 907 713 837 428 466 320 345 500 72 278 444 984 50 387 187 596 379 467 116 150 90 70 248 88 163 767 947 429 287 66 854 667 585 470 562 640 100 510 872 329 400 396 746 530 497 638 202 398 757 604 112 640...
output:
ok
result:
ok all right
Test #10:
score: 100
Accepted
time: 860ms
memory: 3992kb
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 310 385 853 305 385 816 359 83 899
input:
1000 4255 426 864 703 85 233 301 835 12 218 598 590 999 874 500 531 639 378 512 83 157 128 210 512 152 14 36 309 705 600 242 847 8 579 404 394 524 600 888 872 342 604 290 892 920 845 728 545 143 31 818 87 797 984 627 404 462 377 959 344 270 805 578 848 145 265 174 625 398 123 425 184 94 579 176 240 ...
output:
ok
result:
ok all right
Test #11:
score: 100
Accepted
time: 676ms
memory: 3788kb
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 206 615 519 250 309 519 311 948 206 273
input:
1000 3341 163 836 885 514 936 299 161 104 191 202 378 338 621 59 350 617 648 432 757 34 909 958 519 348 757 820 58 13 928 172 991 540 576 685 29 119 213 502 503 925 268 989 660 533 153 420 269 997 608 975 762 502 493 289 818 82 370 812 65 239 932 30 236 148 791 72 766 858 465 356 245 984 568 921 332...
output:
ok
result:
ok all right
Test #12:
score: 0
Wrong Answer
time: 806ms
memory: 3808kb
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 938 497 887 342 388 497 292 364 787 352
input:
1000 3487 216 73 26 845 101 663 178 269 799 60 89 532 504 982 513 473 179 605 144 158 961 559 714 109 932 71 568 322 464 363 165 187 581 768 922 455 487 770 327 666 431 549 733 110 544 682 172 624 947 240 114 630 262 218 625 812 631 840 148 402 543 49 614 843 539 804 97 615 931 586 411 391 376 261 3...
output:
mark 5 386 813 390 331 637 487 386 375 254 98
result:
wrong answer Token "mark" doesn't correspond to pattern "ok"