QOJ.ac

QOJ

IDProblemSubmitterResultTimeMemoryLanguageFile sizeSubmit timeJudge time
#322592#4829. Mark on a GraphPentagonal0 1130ms4192kbC++176.8kb2024-02-07 11:50:572024-02-07 11:50:59

Judging History

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

  • [2024-02-07 11:50:59]
  • 评测
  • 测评结果:0
  • 用时:1130ms
  • 内存:4192kb
  • [2024-02-07 11:50:57]
  • 提交

answer

// #pragma GCC target("avx2")
#pragma GCC optimization ("O3")
#pragma GCC optimization ("unroll-loops")
#pragma GCC optimization ("Ofast")
//#pragma GCC -Wnarrowing

//Template {
#include <bits/stdc++.h>
#include <ext/pb_ds/assoc_container.hpp>
#include <ext/pb_ds/tree_policy.hpp>
#include <chrono>
using namespace std;
using namespace __gnu_pbds;
 
//IO templates
//Note: use endl only for interactive problems or to debug segfaults; use newl for other problems
#define newl "\n"
#define fastIO ios::sync_with_stdio(false); cin.tie(nullptr)
#define fileIO(x) ifstream fin((str) x + (str) ".in"); ofstream fout((str) x + (str) ".out");
// void fileIO(string x) {}
#define flush() fflush(stdout)
#define interact(n) fflush(stdout); cin >> n; if (n == -1) return 0
#define testcases int tt; cin >> tt; fun (i, tt) solve();

#define edgeIO(m) fun (i, m) {int a, b; cin >> a >> b; addEdges(a, b);}
#define WeightedEdgeIO(m) fun (i, m) {int a, b, c; cin >> a >> b >> c; addWeightedEdges(a, b, c);}
#define numberedEdgeIO(m) fun (i, m) {int a, b; cin >> a >> b; addWeightedEdges(a, b, i);}
//types
#define ordered_set tree<int, null_type,less<int>, rb_tree_tag,tree_order_statistics_node_update>
#define ordered_multiset tree<int, null_type,less_equal<int>, rb_tree_tag,tree_order_statistics_node_update>
#define ll long long
#define int long long
#define ld long double
#define str string
#define boolean bool
#define String string
 
//vector
#define pb push_back
#define append push_back
 
//pairs
#define mp make_pair
#define p2 pair<int, int>
#define p3 pair<int, p2>
#define m3(x, y, z) mp(x, mp(y, z))
#define ich first
#define ni second.first
#define sanshi second.second
 
//For loops
#define ahegao(i, a, b) for (int i = a; i < b; i++)
#define baka(i, b, a) for (int i = b; i > a; i--)
#define fun(i, n) for (int i = 1; i <= (n); (i)++)
#define fon(i, n) for (int i = 0; i < (n); (i)++)
#define fur(i, n) for (auto i : (n))
#define oniichan(i, n) for (auto &i : (n))
 
//Sorts
#define sz(aaa) ((signed) aaa.size())
// #define len(aaa) ((signed) aaa.size())
#define all(a) a.begin(), a.end()
#define Sort(a) sort((a).begin(), (a).end())
#define rSort(a) sort((a).rbegin(), (a).rend())
#define clamp(x, y) (x) = min((int) (x), (int) (y))
#define CLAMP(x, y) (x) = max((int) (x), (int) (y))
 
//Other stuff
#define pqueue priority_queue
#define elif else if
#define addEdges(a, b) adj[a].pb(b); adj[b].pb(a)
#define addWeightedEdges(a, b, c) adj[a].pb(mp(b, c)); adj[b].pb(mp(a, c))
// #define find find_by_order
#define printLength(x) if (x < INF) cout << x << newl; else cout << -1 << newl;
// #define printVector(a) fur (i, a) cout << i << ' '; cout << newl;
void printVector(vector<int> DontUseThisName) {
    fur (i, DontUseThisName) cout << i << ' '; cout << newl;
}
void printVector(vector<p2> DontUseThisName) {
    fur (i, DontUseThisName) cout << i.first << ' ' << i.second << newl; cout << newl;
}
void printVector(vector<vector<int>> DontUseThisName) {
    fur (i, DontUseThisName) printVector(i); cout << newl;
}
ll max(ll a, signed b) {return max(a, (ll) b);}
ll max(signed a, ll b) {return max((ll) a, b);}

void pv(int a) {cout << a << newl;}
void pv(int a, int b) {printVector({a, b});}
void pv(p2 a) {printVector({a.first, a.second});};
void pv(int a, int b, int c) {printVector({a, b, c});}
void pv(int a, int b, int c, int d) {printVector({a, b, c, d});}
void pv(int a, int b, int c, int d, int e) {printVector({a, b, c, d, e});}
void pv(int a, int b, int c, int d, int e, int f) {printVector({a, b, c, d, e, f});}
// void pv(int a, )
// void printVector(vector<char> DontUseThisName) {
//     fur (i, DontUseThisName) cout << i << ' '; cout << newl;
// }
// void printRange(vector<int>::iterator Left, vector<int>::iterator Right) {
//     for (auto i = Left; i < Right; i++) cout << *i << ' ';
//     cout << newl;
// } 
//Constants
// const int MOD =  1e9+7; // 998244353
// const int SMALLMOD = 998244353;
const int INF = 2e9+1337;
const ll EXCEED = 2e18+1337;
const ll GRAVITY = 8e18;

//#define vectorIO(n, MikuBondage) fun (j, n) {int i; cin >> i; MikuBondage.pb(i);}
void vectorIO(int n, vector<int> &DontUseThisName) {
    fun (j, n) {int i; cin >> i; DontUseThisName.pb(i);}
}
//#define vector2IO(n, MikuBondage) fun (j, n) {int i, ii; cin >> i >> ii; MikuBondage.pb(mp(i, ii));}
void vector2IO(int n, vector<p2> &DontUseThisName) {
    fun (j, n) {int i, ii; cin >> i >> ii; DontUseThisName.pb(mp(i, ii));}
}

// const int dx[4] = {1, -1, 0, 0}, dy[4] = {0, 0, 1, -1};
#define shortest_path_queue priority_queue<p2, vector<p2>, greater<p2>>
#define printArray(DontUseThisName, NakedLolisGalore, GenshinImpactClimbing) ahegao (j, NakedLolisGalore, GenshinImpactClimbing + 1) cout << DontUseThisName[j] << ' '; cout << newl;
#define print2dArray(SplitComplexProblemsIntoMultipleParts, ScuteSwarm, GenshinImpactClimbing) fun (i, ScuteSwarm) {fun (j, GenshinImpactClimbing) cout << SplitComplexProblemsIntoMultipleParts[i][j] << ' '; cout << newl;}
//}
const int MAX = 1003;
const int MOD = 2003;
int n, m, k, curr;
set<int> adj[MAX];
int cnt[1003];
unsigned long long rng = chrono::steady_clock::now().time_since_epoch().count();
int hash1() {
    vector<int> aaa;
    fun (i, n) {
        vector<int> temp;
        fur (j, adj[i]) temp.pb(sz(adj[j]));
        Sort(temp);
        int res = 1;
        fur (j, temp) res = (71 * res + 43 * j) % MOD;
        cnt[i] = res;
    }
    fun (i, n) {
        vector<int> temp;
        fur (j, adj[i]) temp.pb(cnt[j]);
        Sort(temp);
        int res = 1;
        fur (j, temp) res = (71 * res + j) % MOD;
        aaa.pb(res);
    }
    Sort(aaa);
    int rrr = 1;
    fur (j, aaa) rrr = (73 * rrr + j + (rrr << 5)) % MOD;
    // pv(rrr);
    return rrr;
}

int randint() {
    rng = ((1337 * (rng % 483187) + (rng << 5) + (rng << 27) + 987654321 + (rng % 235612) * (rng * 55679))) % INF;
    return rng;
}

signed main() {
    fastIO;
    cin >> n >> m;
    // edgeIO(m);
    fun (i, m) {
        int a, b; cin >> a >> b;
        adj[a].insert(b); adj[b].insert(a);
    }
    // cout << hash1() << newl;
    if (hash1() == 1337) {
        cout << "ok";
        return 0;
    }
    // return 0;
    // fun (i, n) ahegao (j, i+1, n+1) {
    while (true) {
        int i = (randint() % n) + 1;
        int j = (randint() % n) + 1;
        // pv(i, j);
        // cout << endl;
        if (i == j) continue;
        if (adj[i].find(j) == adj[i].end()) {
            adj[i].insert(j);
            adj[j].insert(i);
            if (hash1() == 1337) {
                cout << "mark" << newl;
                cout << 1 << newl;
                pv(i, j);
                return 0;
            }
            adj[i].erase(j);
            adj[j].erase(i);
        }
    }
    // }
}

Details

Tip: Click on the bar to expand more detailed information

Test #1:

score: 100
Accepted
time: 1039ms
memory: 4128kb

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
1
735 582 

input:

1000 3561
269 626
295 222
665 959
909 534
682 161
833 706
155 199
841 656
184 286
383 358
259 86
771 817
37 355
174 167
484 763
209 250
693 401
850 500
902 369
521 380
368 418
676 977
920 112
831 175
688 730
692 125
654 102
757 70
962 736
87 733
373 956
600 137
201 783
267 511
790 201
975 583
937 55...

output:

ok

result:

ok all right

Test #2:

score: 100
Accepted
time: 369ms
memory: 3964kb

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
60 218 

input:

1000 2001
181 610
426 320
451 386
377 313
97 233
231 106
993 482
403 152
835 246
554 952
541 72
227 182
962 916
584 649
546 673
962 651
108 699
731 324
39 263
541 268
568 620
379 375
415 582
622 628
341 884
672 70
564 349
532 563
99 37
741 982
23 450
411 738
758 235
770 529
312 78
838 977
956 965
50...

output:

ok

result:

ok all right

Test #3:

score: 100
Accepted
time: 1130ms
memory: 4192kb

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
1
679 499 

input:

1000 5001
551 533
786 996
219 796
171 208
412 802
127 428
361 305
479 435
121 24
75 559
578 166
45 106
156 570
128 805
917 352
647 729
396 945
345 309
992 501
13 996
854 986
582 363
471 245
780 461
326 859
934 1
839 62
206 888
458 321
181 533
21 787
854 115
566 344
337 781
274 629
55 266
634 530
157...

output:

ok

result:

ok all right

Test #4:

score: 0
Stage 1: Program answer Time Limit Exceeded

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
1
585 799 

input:


output:


result: