#include "meetings.h"
#define VIS(it,con) for(auto it=con.begin();it!=con.end();++it)
#include<bits/stdc++.h>
//#define int int_fast64_t
using namespace std;
typedef pair<int,int> pii;
#define REP(i,j,k) for(register int i=(j);i<(k);++i)
#define RREP(i,j,k) for(register int i=int(j)-1;i>=(k);--i)
#define ALL(a) a.begin(),a.end()
#define pb push_back
#define f first
#define s second
#define de(...) cerr<<__VA_ARGS__
#define ar(a,s,t) {REP(__i,s,t)de(a[__i]<<' ');de(endl);}
mt19937 rd(time(0));
int o;
map<pii,int>rec;
int qr(int a,int b){
if(rec.count({a,b}))return rec[{a,b}];
int ret=a==b?a:a==o||b==o?o:Query(o,a,b);
rec[{a,b}]=ret;
return ret;
}
void solve(int rt,vector<int>v){
if(v.size()==1)return;
int u=rt;
while(u==rt)u=v[rd()%v.size()];
map<int,vector<int>>mp;
REP(i,0,v.size())mp[qr(u,v[i])].pb(v[i]);
vector<int>path;
VIS(it,mp){
solve(it->f,it->s);
path.pb(it->f);
}
sort(ALL(path),[](int a,int b){return qr(a,b)==a;});
REP(i,1,path.size())Bridge(min(path[i-1],path[i]),max(path[i-1],path[i]));
}
void Solve(int n){
o=rd()%n;
vector<int>v;
REP(i,0,n)v.pb(i);
solve(o,v);
}
Compilation message
meetings.cpp: In function 'void solve(int, std::vector<int>)':
meetings.cpp:7:44: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
#define REP(i,j,k) for(register int i=(j);i<(k);++i)
^
meetings.cpp:32:2: note: in expansion of macro 'REP'
REP(i,0,v.size())mp[qr(u,v[i])].pb(v[i]);
^~~
meetings.cpp:7:44: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
#define REP(i,j,k) for(register int i=(j);i<(k);++i)
^
meetings.cpp:39:2: note: in expansion of macro 'REP'
REP(i,1,path.size())Bridge(min(path[i-1],path[i]),max(path[i-1],path[i]));
^~~
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
2 ms |
252 KB |
Output is correct |
2 |
Correct |
2 ms |
248 KB |
Output is correct |
3 |
Correct |
2 ms |
248 KB |
Output is correct |
4 |
Correct |
2 ms |
376 KB |
Output is correct |
5 |
Correct |
2 ms |
248 KB |
Output is correct |
6 |
Correct |
2 ms |
248 KB |
Output is correct |
7 |
Correct |
2 ms |
376 KB |
Output is correct |
8 |
Correct |
2 ms |
296 KB |
Output is correct |
9 |
Correct |
2 ms |
376 KB |
Output is correct |
10 |
Correct |
2 ms |
248 KB |
Output is correct |
11 |
Correct |
2 ms |
380 KB |
Output is correct |
12 |
Correct |
2 ms |
380 KB |
Output is correct |
13 |
Correct |
2 ms |
376 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
2 ms |
252 KB |
Output is correct |
2 |
Correct |
2 ms |
248 KB |
Output is correct |
3 |
Correct |
2 ms |
248 KB |
Output is correct |
4 |
Correct |
2 ms |
376 KB |
Output is correct |
5 |
Correct |
2 ms |
248 KB |
Output is correct |
6 |
Correct |
2 ms |
248 KB |
Output is correct |
7 |
Correct |
2 ms |
376 KB |
Output is correct |
8 |
Correct |
2 ms |
296 KB |
Output is correct |
9 |
Correct |
2 ms |
376 KB |
Output is correct |
10 |
Correct |
2 ms |
248 KB |
Output is correct |
11 |
Correct |
2 ms |
380 KB |
Output is correct |
12 |
Correct |
2 ms |
380 KB |
Output is correct |
13 |
Correct |
2 ms |
376 KB |
Output is correct |
14 |
Correct |
2 ms |
376 KB |
Output is correct |
15 |
Correct |
2 ms |
376 KB |
Output is correct |
16 |
Correct |
2 ms |
376 KB |
Output is correct |
17 |
Correct |
2 ms |
376 KB |
Output is correct |
18 |
Correct |
2 ms |
376 KB |
Output is correct |
19 |
Correct |
3 ms |
376 KB |
Output is correct |
20 |
Correct |
3 ms |
376 KB |
Output is correct |
21 |
Correct |
4 ms |
504 KB |
Output is correct |
22 |
Correct |
3 ms |
296 KB |
Output is correct |
23 |
Correct |
2 ms |
376 KB |
Output is correct |
24 |
Correct |
3 ms |
376 KB |
Output is correct |
25 |
Correct |
2 ms |
376 KB |
Output is correct |
26 |
Correct |
2 ms |
376 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
2 ms |
252 KB |
Output is correct |
2 |
Correct |
2 ms |
248 KB |
Output is correct |
3 |
Correct |
2 ms |
248 KB |
Output is correct |
4 |
Correct |
2 ms |
376 KB |
Output is correct |
5 |
Correct |
2 ms |
248 KB |
Output is correct |
6 |
Correct |
2 ms |
248 KB |
Output is correct |
7 |
Correct |
2 ms |
376 KB |
Output is correct |
8 |
Correct |
2 ms |
296 KB |
Output is correct |
9 |
Correct |
2 ms |
376 KB |
Output is correct |
10 |
Correct |
2 ms |
248 KB |
Output is correct |
11 |
Correct |
2 ms |
380 KB |
Output is correct |
12 |
Correct |
2 ms |
380 KB |
Output is correct |
13 |
Correct |
2 ms |
376 KB |
Output is correct |
14 |
Correct |
2 ms |
376 KB |
Output is correct |
15 |
Correct |
2 ms |
376 KB |
Output is correct |
16 |
Correct |
2 ms |
376 KB |
Output is correct |
17 |
Correct |
2 ms |
376 KB |
Output is correct |
18 |
Correct |
2 ms |
376 KB |
Output is correct |
19 |
Correct |
3 ms |
376 KB |
Output is correct |
20 |
Correct |
3 ms |
376 KB |
Output is correct |
21 |
Correct |
4 ms |
504 KB |
Output is correct |
22 |
Correct |
3 ms |
296 KB |
Output is correct |
23 |
Correct |
2 ms |
376 KB |
Output is correct |
24 |
Correct |
3 ms |
376 KB |
Output is correct |
25 |
Correct |
2 ms |
376 KB |
Output is correct |
26 |
Correct |
2 ms |
376 KB |
Output is correct |
27 |
Correct |
9 ms |
504 KB |
Output is correct |
28 |
Correct |
8 ms |
504 KB |
Output is correct |
29 |
Correct |
9 ms |
504 KB |
Output is correct |
30 |
Correct |
9 ms |
504 KB |
Output is correct |
31 |
Correct |
8 ms |
504 KB |
Output is correct |
32 |
Correct |
12 ms |
632 KB |
Output is correct |
33 |
Correct |
16 ms |
632 KB |
Output is correct |
34 |
Correct |
19 ms |
760 KB |
Output is correct |
35 |
Correct |
19 ms |
632 KB |
Output is correct |
36 |
Correct |
8 ms |
496 KB |
Output is correct |
37 |
Correct |
16 ms |
632 KB |
Output is correct |
38 |
Correct |
15 ms |
504 KB |
Output is correct |
39 |
Correct |
12 ms |
504 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
821 ms |
1836 KB |
Output is correct |
2 |
Correct |
838 ms |
1808 KB |
Output is correct |
3 |
Correct |
700 ms |
1612 KB |
Output is correct |
4 |
Correct |
750 ms |
1740 KB |
Output is correct |
5 |
Correct |
419 ms |
1592 KB |
Output is correct |
6 |
Correct |
415 ms |
1688 KB |
Output is correct |
7 |
Correct |
800 ms |
2684 KB |
Output is correct |
8 |
Correct |
925 ms |
3232 KB |
Output is correct |
9 |
Correct |
925 ms |
3320 KB |
Output is correct |
10 |
Correct |
969 ms |
3292 KB |
Output is correct |
11 |
Correct |
1012 ms |
3204 KB |
Output is correct |
12 |
Correct |
599 ms |
1760 KB |
Output is correct |
13 |
Correct |
446 ms |
1616 KB |
Output is correct |
14 |
Correct |
672 ms |
2204 KB |
Output is correct |
15 |
Correct |
599 ms |
2216 KB |
Output is correct |
16 |
Correct |
600 ms |
2252 KB |
Output is correct |
17 |
Correct |
823 ms |
3076 KB |
Output is correct |
18 |
Correct |
526 ms |
2316 KB |
Output is correct |
19 |
Correct |
470 ms |
1912 KB |
Output is correct |
20 |
Correct |
597 ms |
2324 KB |
Output is correct |
21 |
Correct |
676 ms |
2364 KB |
Output is correct |
22 |
Correct |
576 ms |
2132 KB |
Output is correct |
23 |
Correct |
682 ms |
2148 KB |
Output is correct |
24 |
Correct |
593 ms |
2168 KB |
Output is correct |
25 |
Correct |
576 ms |
2032 KB |
Output is correct |
26 |
Correct |
515 ms |
1880 KB |
Output is correct |
27 |
Correct |
545 ms |
1996 KB |
Output is correct |
28 |
Correct |
1084 ms |
3192 KB |
Output is correct |
29 |
Correct |
931 ms |
3340 KB |
Output is correct |
30 |
Correct |
956 ms |
3188 KB |
Output is correct |
31 |
Correct |
1008 ms |
3212 KB |
Output is correct |
32 |
Correct |
1424 ms |
2360 KB |
Output is correct |
33 |
Correct |
924 ms |
2216 KB |
Output is correct |
34 |
Correct |
9 ms |
504 KB |
Output is correct |
35 |
Correct |
8 ms |
504 KB |
Output is correct |
36 |
Correct |
8 ms |
504 KB |
Output is correct |
37 |
Correct |
9 ms |
632 KB |
Output is correct |
38 |
Correct |
8 ms |
504 KB |
Output is correct |
39 |
Correct |
13 ms |
632 KB |
Output is correct |
40 |
Correct |
16 ms |
680 KB |
Output is correct |
41 |
Correct |
19 ms |
680 KB |
Output is correct |
42 |
Correct |
19 ms |
848 KB |
Output is correct |
43 |
Correct |
7 ms |
504 KB |
Output is correct |
44 |
Correct |
15 ms |
508 KB |
Output is correct |
45 |
Correct |
15 ms |
632 KB |
Output is correct |
46 |
Correct |
12 ms |
504 KB |
Output is correct |
47 |
Correct |
2 ms |
380 KB |
Output is correct |
48 |
Correct |
2 ms |
292 KB |
Output is correct |
49 |
Correct |
2 ms |
296 KB |
Output is correct |
50 |
Correct |
2 ms |
292 KB |
Output is correct |
51 |
Correct |
2 ms |
376 KB |
Output is correct |
52 |
Correct |
2 ms |
376 KB |
Output is correct |
53 |
Correct |
2 ms |
376 KB |
Output is correct |
54 |
Correct |
2 ms |
376 KB |
Output is correct |
55 |
Correct |
2 ms |
376 KB |
Output is correct |
56 |
Correct |
2 ms |
376 KB |
Output is correct |
57 |
Correct |
2 ms |
376 KB |
Output is correct |
58 |
Correct |
2 ms |
376 KB |
Output is correct |
59 |
Correct |
2 ms |
376 KB |
Output is correct |
60 |
Correct |
2 ms |
248 KB |
Output is correct |
61 |
Correct |
2 ms |
248 KB |
Output is correct |
62 |
Correct |
2 ms |
376 KB |
Output is correct |
63 |
Correct |
2 ms |
248 KB |
Output is correct |
64 |
Correct |
2 ms |
248 KB |
Output is correct |
65 |
Correct |
2 ms |
376 KB |
Output is correct |
66 |
Correct |
2 ms |
376 KB |
Output is correct |
67 |
Correct |
2 ms |
248 KB |
Output is correct |
68 |
Correct |
2 ms |
376 KB |
Output is correct |
69 |
Correct |
2 ms |
376 KB |
Output is correct |
70 |
Correct |
2 ms |
376 KB |
Output is correct |
71 |
Correct |
2 ms |
376 KB |
Output is correct |
72 |
Correct |
2 ms |
376 KB |
Output is correct |