#include "Azer.h"
#include<bits/stdc++.h>
#define ll int
#define pll pair<ll, ll>
#define pb push_back
#define mp make_pair
#define fi first
#define se second
#define ld long double
#define sz(a) ((ll)(a).size())
using namespace std;
namespace A
{
const ll maxn=2005, inf=1<<20;
vector <pll> A[maxn];
ll n, last, cru, crd, crv, cnt, dis[maxn], check[maxn];
void update(ll u)
{
check[u]=1, last=dis[u];
for (auto [v, w]:A[u])
dis[v]=min(dis[v], dis[u]+w);
}
void senddis()
{
ll big=-1;
for (ll i=0; i<n; i++)
if (!check[i] && (big==-1 || dis[i]<dis[big]))
big=i;
if (big==-1) return; cru=big;
ll d=min(511, dis[big]-last);
for (ll i=0; i<9; i++) SendA(d>>i&1);
// cout << "A sent distance: " << d << "\n";
}
void sendidx(ll idx) {
// cout << "A sent index: " << idx << "\n";
for (ll i=0; i<11; i++) SendA(idx>>i&1);}
void init(ll N)
{
n=N, last=cru=crv=crd=cnt=0;
for (ll i=0; i<n; i++) dis[i]=inf, check[i]=0;
dis[0]=0, update(0), senddis();
}
void receive(bool x)
{
if (cnt<9)
{
if (x) crd^=1<<cnt;
if (++cnt==9)
{
crd+=last;
if (crd>dis[cru])
{
update(cru), sendidx(cru), senddis();
crd=cnt=0;
}
else crv=0;
}
}
else
{
if (x) crv^=1<<cnt-9;
if (++cnt==20)
{
dis[crv]=min(dis[crv], crd);
update(crv), senddis(), cnt=crd=0;
}
}
}
vector <ll> answer()
{
vector <ll> ans(n);
for (ll k=0; k<n; k++) ans[k]=dis[k];
return ans;
}
}
void ReceiveA(bool x) {A::receive(x);}
vector<int> Answer() {return A::answer();}
void InitA(int n, int a, vector<int> U, vector<int> V, vector<int> C)
{
for (ll i=0; i<a; i++)
{
A::A[U[i]].pb({V[i], C[i]});
A::A[V[i]].pb({U[i], C[i]});
}
A::init(n);
}
#include "Baijan.h"
#include<bits/stdc++.h>
#define ll int
#define pll pair<ll, ll>
#define pb push_back
#define mp make_pair
#define fi first
#define se second
#define ld long double
#define sz(a) ((ll)(a).size())
using namespace std;
namespace B
{
const ll maxn=2005, inf=1<<20;
vector <pll> A[maxn];
ll n, last, cru, crd, crv, cnt, dis[maxn], check[maxn];
void update(ll u)
{
check[u]=1, last=dis[u];
for (auto [v, w]:A[u])
dis[v]=min(dis[v], dis[u]+w);
}
void senddis()
{
ll big=-1;
for (ll i=0; i<n; i++)
if (!check[i] && (big==-1 || dis[i]<dis[big]))
big=i;
if (big==-1) return; cru=big;
ll d=min(511, dis[big]-last);
for (ll i=0; i<9; i++) SendB(d>>i&1);
// cout << "A sent distance: " << d << "\n";
}
void sendidx(ll idx) {
// cout << "A sent index: " << idx << "\n";
for (ll i=0; i<11; i++) SendB(idx>>i&1);}
void init(ll N)
{
n=N, last=cru=crv=crd=cnt=0;
for (ll i=0; i<n; i++) dis[i]=inf, check[i]=0;
dis[0]=0, update(0), senddis();
}
void receive(bool x)
{
if (cnt<9)
{
if (x) crd^=1<<cnt;
if (++cnt==9)
{
crd+=last;
if (crd>=dis[cru])
{
update(cru), sendidx(cru), senddis();
crd=cnt=0;
}
else crv=0;
}
}
else
{
if (x) crv^=1<<cnt-9;
if (++cnt==20)
{
dis[crv]=min(dis[crv], crd);
update(crv), senddis(), cnt=crd=0;
}
}
}
}
void ReceiveB(bool x) {B::receive(x);}
void InitB(int n, int b, vector<int> U, vector<int> V, vector<int> C)
{
for (ll i=0; i<b; i++)
{
B::A[U[i]].pb({V[i], C[i]});
B::A[V[i]].pb({U[i], C[i]});
}
B::init(n);
}
Compilation message
Azer.cpp: In function 'void A::senddis()':
Azer.cpp:33:9: warning: this 'if' clause does not guard... [-Wmisleading-indentation]
33 | if (big==-1) return; cru=big;
| ^~
Azer.cpp:33:30: note: ...this statement, but the latter is misleadingly indented as if it were guarded by the 'if'
33 | if (big==-1) return; cru=big;
| ^~~
Azer.cpp: In function 'void A::receive(bool)':
Azer.cpp:67:31: warning: suggest parentheses around '-' inside '<<' [-Wparentheses]
67 | if (x) crv^=1<<cnt-9;
| ~~~^~
Baijan.cpp: In function 'void B::senddis()':
Baijan.cpp:33:9: warning: this 'if' clause does not guard... [-Wmisleading-indentation]
33 | if (big==-1) return; cru=big;
| ^~
Baijan.cpp:33:30: note: ...this statement, but the latter is misleadingly indented as if it were guarded by the 'if'
33 | if (big==-1) return; cru=big;
| ^~~
Baijan.cpp: In function 'void B::receive(bool)':
Baijan.cpp:67:31: warning: suggest parentheses around '-' inside '<<' [-Wparentheses]
67 | if (x) crv^=1<<cnt-9;
| ~~~^~
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
366 ms |
1060 KB |
Output is correct |
2 |
Correct |
0 ms |
664 KB |
Output is correct |
3 |
Correct |
378 ms |
1088 KB |
Output is correct |
4 |
Correct |
409 ms |
10484 KB |
Output is correct |
5 |
Correct |
19 ms |
920 KB |
Output is correct |
6 |
Correct |
364 ms |
2468 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
0 ms |
664 KB |
Output is correct |
2 |
Correct |
339 ms |
880 KB |
Output is correct |
3 |
Correct |
380 ms |
944 KB |
Output is correct |
4 |
Correct |
476 ms |
27740 KB |
Output is correct |
5 |
Correct |
529 ms |
24372 KB |
Output is correct |
6 |
Correct |
72 ms |
664 KB |
Output is correct |
7 |
Correct |
473 ms |
24452 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
378 ms |
872 KB |
Output is correct |
2 |
Correct |
0 ms |
672 KB |
Output is correct |
3 |
Correct |
402 ms |
1064 KB |
Output is correct |
4 |
Correct |
385 ms |
884 KB |
Output is correct |
5 |
Correct |
368 ms |
884 KB |
Output is correct |
6 |
Correct |
374 ms |
868 KB |
Output is correct |
7 |
Correct |
384 ms |
884 KB |
Output is correct |
8 |
Correct |
369 ms |
804 KB |
Output is correct |
9 |
Correct |
373 ms |
1052 KB |
Output is correct |
10 |
Correct |
380 ms |
1060 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
172 ms |
916 KB |
Output is correct |
2 |
Correct |
161 ms |
800 KB |
Output is correct |
3 |
Correct |
204 ms |
13468 KB |
Output is correct |
4 |
Correct |
148 ms |
832 KB |
Output is correct |
5 |
Correct |
225 ms |
10076 KB |
Output is correct |
6 |
Correct |
162 ms |
664 KB |
Output is correct |
7 |
Correct |
157 ms |
664 KB |
Output is correct |
8 |
Correct |
173 ms |
664 KB |
Output is correct |
9 |
Correct |
259 ms |
18212 KB |
Output is correct |
10 |
Correct |
267 ms |
18688 KB |
Output is correct |
11 |
Correct |
359 ms |
35788 KB |
Output is correct |
12 |
Correct |
340 ms |
30628 KB |
Output is correct |
13 |
Correct |
181 ms |
668 KB |
Output is correct |
14 |
Correct |
2 ms |
916 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
172 ms |
916 KB |
Output is correct |
2 |
Correct |
161 ms |
800 KB |
Output is correct |
3 |
Correct |
204 ms |
13468 KB |
Output is correct |
4 |
Correct |
148 ms |
832 KB |
Output is correct |
5 |
Correct |
225 ms |
10076 KB |
Output is correct |
6 |
Correct |
162 ms |
664 KB |
Output is correct |
7 |
Correct |
157 ms |
664 KB |
Output is correct |
8 |
Correct |
173 ms |
664 KB |
Output is correct |
9 |
Correct |
259 ms |
18212 KB |
Output is correct |
10 |
Correct |
267 ms |
18688 KB |
Output is correct |
11 |
Correct |
359 ms |
35788 KB |
Output is correct |
12 |
Correct |
340 ms |
30628 KB |
Output is correct |
13 |
Correct |
181 ms |
668 KB |
Output is correct |
14 |
Correct |
2 ms |
916 KB |
Output is correct |
15 |
Correct |
213 ms |
684 KB |
Output is correct |
16 |
Correct |
201 ms |
664 KB |
Output is correct |
17 |
Correct |
198 ms |
664 KB |
Output is correct |
18 |
Correct |
256 ms |
10436 KB |
Output is correct |
19 |
Correct |
214 ms |
664 KB |
Output is correct |
20 |
Correct |
266 ms |
10676 KB |
Output is correct |
21 |
Correct |
204 ms |
664 KB |
Output is correct |
22 |
Correct |
205 ms |
920 KB |
Output is correct |
23 |
Correct |
321 ms |
22240 KB |
Output is correct |
24 |
Correct |
338 ms |
22252 KB |
Output is correct |
25 |
Correct |
428 ms |
43528 KB |
Output is correct |
26 |
Correct |
382 ms |
36540 KB |
Output is correct |
27 |
Correct |
190 ms |
664 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
172 ms |
916 KB |
Output is correct |
2 |
Correct |
161 ms |
800 KB |
Output is correct |
3 |
Correct |
204 ms |
13468 KB |
Output is correct |
4 |
Correct |
148 ms |
832 KB |
Output is correct |
5 |
Correct |
225 ms |
10076 KB |
Output is correct |
6 |
Correct |
162 ms |
664 KB |
Output is correct |
7 |
Correct |
157 ms |
664 KB |
Output is correct |
8 |
Correct |
173 ms |
664 KB |
Output is correct |
9 |
Correct |
259 ms |
18212 KB |
Output is correct |
10 |
Correct |
267 ms |
18688 KB |
Output is correct |
11 |
Correct |
359 ms |
35788 KB |
Output is correct |
12 |
Correct |
340 ms |
30628 KB |
Output is correct |
13 |
Correct |
181 ms |
668 KB |
Output is correct |
14 |
Correct |
2 ms |
916 KB |
Output is correct |
15 |
Correct |
213 ms |
684 KB |
Output is correct |
16 |
Correct |
201 ms |
664 KB |
Output is correct |
17 |
Correct |
198 ms |
664 KB |
Output is correct |
18 |
Correct |
256 ms |
10436 KB |
Output is correct |
19 |
Correct |
214 ms |
664 KB |
Output is correct |
20 |
Correct |
266 ms |
10676 KB |
Output is correct |
21 |
Correct |
204 ms |
664 KB |
Output is correct |
22 |
Correct |
205 ms |
920 KB |
Output is correct |
23 |
Correct |
321 ms |
22240 KB |
Output is correct |
24 |
Correct |
338 ms |
22252 KB |
Output is correct |
25 |
Correct |
428 ms |
43528 KB |
Output is correct |
26 |
Correct |
382 ms |
36540 KB |
Output is correct |
27 |
Correct |
190 ms |
664 KB |
Output is correct |
28 |
Correct |
269 ms |
852 KB |
Output is correct |
29 |
Correct |
247 ms |
796 KB |
Output is correct |
30 |
Correct |
438 ms |
24220 KB |
Output is correct |
31 |
Correct |
262 ms |
796 KB |
Output is correct |
32 |
Correct |
370 ms |
21144 KB |
Output is correct |
33 |
Correct |
273 ms |
872 KB |
Output is correct |
34 |
Correct |
269 ms |
920 KB |
Output is correct |
35 |
Correct |
267 ms |
1176 KB |
Output is correct |
36 |
Correct |
375 ms |
25004 KB |
Output is correct |
37 |
Correct |
404 ms |
24860 KB |
Output is correct |
38 |
Correct |
534 ms |
49168 KB |
Output is correct |
39 |
Correct |
458 ms |
44372 KB |
Output is correct |
40 |
Correct |
261 ms |
1176 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
366 ms |
1060 KB |
Output is correct |
2 |
Correct |
0 ms |
664 KB |
Output is correct |
3 |
Correct |
378 ms |
1088 KB |
Output is correct |
4 |
Correct |
409 ms |
10484 KB |
Output is correct |
5 |
Correct |
19 ms |
920 KB |
Output is correct |
6 |
Correct |
364 ms |
2468 KB |
Output is correct |
7 |
Correct |
0 ms |
664 KB |
Output is correct |
8 |
Correct |
339 ms |
880 KB |
Output is correct |
9 |
Correct |
380 ms |
944 KB |
Output is correct |
10 |
Correct |
476 ms |
27740 KB |
Output is correct |
11 |
Correct |
529 ms |
24372 KB |
Output is correct |
12 |
Correct |
72 ms |
664 KB |
Output is correct |
13 |
Correct |
473 ms |
24452 KB |
Output is correct |
14 |
Correct |
378 ms |
872 KB |
Output is correct |
15 |
Correct |
0 ms |
672 KB |
Output is correct |
16 |
Correct |
402 ms |
1064 KB |
Output is correct |
17 |
Correct |
385 ms |
884 KB |
Output is correct |
18 |
Correct |
368 ms |
884 KB |
Output is correct |
19 |
Correct |
374 ms |
868 KB |
Output is correct |
20 |
Correct |
384 ms |
884 KB |
Output is correct |
21 |
Correct |
369 ms |
804 KB |
Output is correct |
22 |
Correct |
373 ms |
1052 KB |
Output is correct |
23 |
Correct |
380 ms |
1060 KB |
Output is correct |
24 |
Correct |
172 ms |
916 KB |
Output is correct |
25 |
Correct |
161 ms |
800 KB |
Output is correct |
26 |
Correct |
204 ms |
13468 KB |
Output is correct |
27 |
Correct |
148 ms |
832 KB |
Output is correct |
28 |
Correct |
225 ms |
10076 KB |
Output is correct |
29 |
Correct |
162 ms |
664 KB |
Output is correct |
30 |
Correct |
157 ms |
664 KB |
Output is correct |
31 |
Correct |
173 ms |
664 KB |
Output is correct |
32 |
Correct |
259 ms |
18212 KB |
Output is correct |
33 |
Correct |
267 ms |
18688 KB |
Output is correct |
34 |
Correct |
359 ms |
35788 KB |
Output is correct |
35 |
Correct |
340 ms |
30628 KB |
Output is correct |
36 |
Correct |
181 ms |
668 KB |
Output is correct |
37 |
Correct |
2 ms |
916 KB |
Output is correct |
38 |
Correct |
213 ms |
684 KB |
Output is correct |
39 |
Correct |
201 ms |
664 KB |
Output is correct |
40 |
Correct |
198 ms |
664 KB |
Output is correct |
41 |
Correct |
256 ms |
10436 KB |
Output is correct |
42 |
Correct |
214 ms |
664 KB |
Output is correct |
43 |
Correct |
266 ms |
10676 KB |
Output is correct |
44 |
Correct |
204 ms |
664 KB |
Output is correct |
45 |
Correct |
205 ms |
920 KB |
Output is correct |
46 |
Correct |
321 ms |
22240 KB |
Output is correct |
47 |
Correct |
338 ms |
22252 KB |
Output is correct |
48 |
Correct |
428 ms |
43528 KB |
Output is correct |
49 |
Correct |
382 ms |
36540 KB |
Output is correct |
50 |
Correct |
190 ms |
664 KB |
Output is correct |
51 |
Correct |
269 ms |
852 KB |
Output is correct |
52 |
Correct |
247 ms |
796 KB |
Output is correct |
53 |
Correct |
438 ms |
24220 KB |
Output is correct |
54 |
Correct |
262 ms |
796 KB |
Output is correct |
55 |
Correct |
370 ms |
21144 KB |
Output is correct |
56 |
Correct |
273 ms |
872 KB |
Output is correct |
57 |
Correct |
269 ms |
920 KB |
Output is correct |
58 |
Correct |
267 ms |
1176 KB |
Output is correct |
59 |
Correct |
375 ms |
25004 KB |
Output is correct |
60 |
Correct |
404 ms |
24860 KB |
Output is correct |
61 |
Correct |
534 ms |
49168 KB |
Output is correct |
62 |
Correct |
458 ms |
44372 KB |
Output is correct |
63 |
Correct |
261 ms |
1176 KB |
Output is correct |
64 |
Correct |
404 ms |
1220 KB |
Output is correct |
65 |
Correct |
535 ms |
26784 KB |
Output is correct |
66 |
Correct |
495 ms |
23616 KB |
Output is correct |
67 |
Correct |
367 ms |
1208 KB |
Output is correct |
68 |
Correct |
382 ms |
1204 KB |
Output is correct |
69 |
Correct |
681 ms |
47560 KB |
Output is correct |
70 |
Correct |
624 ms |
39396 KB |
Output is correct |
71 |
Correct |
386 ms |
5388 KB |
Output is correct |
72 |
Correct |
386 ms |
1176 KB |
Output is correct |