#include "Azer.h"
#include <iostream>
#include <vector>
#include <queue>
#include <tuple>
#include <climits>
#include <algorithm>
using namespace std;
#define f first
#define s second
int n, dc, c, st, sn, re, idx, pr;
priority_queue<pair<int, int>, vector<pair<int, int>>, greater<pair<int, int>>> pq;
vector<pair<int, int>> adj[2005];
vector<int> dist;
bool seen[2005];
void dijkstra(int curr, int val) {
val += pr;
pr = val;
dist[curr] = val;
seen[curr] = true;
dc++;
if (dc == n) return;
for (auto [i, w] : adj[curr]) {
if (dist[curr] + w < dist[i]) {
dist[i] = dist[curr] + w;
pq.push({dist[i], i});
}
}
while (!pq.empty() && seen[pq.top().s]) {
pq.pop();
}
if (pq.empty()) sn = 501;
else sn = pq.top().f - pr;
for (int i = 8; i >= 0; i--) {
SendA((sn >> i) & 1);
}
if (pq.empty()) idx = 2000;
else idx = pq.top().s;
}
void InitA(int N, int A, vector<int> U, vector<int> V, vector<int> C) {
n = N;
for (int i = 0; i < A; i++) {
adj[U[i]].push_back({V[i], C[i]});
adj[V[i]].push_back({U[i], C[i]});
}
dist.resize(n, 1e9);
dijkstra(0, 0);
}
void ReceiveA(bool x) {
if (st == 0) {
re = (re << 1) + x;
c++;
if (c == 9) {
c = 0;
if (sn <= re) {
for (int i = 10; i >= 0; i--) {
SendA((idx >> i) & 1);
}
dijkstra(idx, sn);
re = 0;
} else {
st = 1;
idx = 0;
}
}
} else {
idx = (idx << 1) + x;
c++;
if (c == 11) {
c = 0;
st = 0;
dijkstra(idx, re);
re = 0;
}
}
}
vector<int> Answer() {
return dist;
}
#include "Baijan.h"
#include <iostream>
#include <vector>
#include <queue>
#include <tuple>
#include <climits>
#include <algorithm>
using namespace std;
#define f first
#define s second
int n, dc, c, st, sn, re, idx, pr;
priority_queue<pair<int, int>, vector<pair<int, int>>, greater<pair<int, int>>> pq;
vector<pair<int, int>> adj[2005];
vector<int> dist;
bool seen[2005];
void dijkstra(int curr, int val) {
val += pr;
pr = val;
dist[curr] = val;
seen[curr] = true;
dc++;
if (dc == n) return;
for (auto [i, w] : adj[curr]) {
if (dist[curr] + w < dist[i]) {
dist[i] = dist[curr] + w;
pq.push({dist[i], i});
}
}
while (!pq.empty() && seen[pq.top().s]) {
pq.pop();
}
if (pq.empty()) sn = 501;
else sn = pq.top().f - pr;
for (int i = 8; i >= 0; i--) {
SendB((sn >> i) & 1);
}
if (pq.empty()) idx = 2000;
else idx = pq.top().s;
}
void InitB(int N, int B, vector<int> S, vector<int> T, vector<int> D) {
n = N;
for (int i = 0; i < B; i++) {
adj[S[i]].push_back({T[i], D[i]});
adj[T[i]].push_back({S[i], D[i]});
}
dist.resize(n, 1e9);
dijkstra(0, 0);
}
void ReceiveB(bool y) {
if (st == 0) {
re = (re << 1) + y;
c++;
if (c == 9) {
c = 0;
if (sn < re) {
for (int i = 10; i >= 0; i--) {
SendB((idx >> i) & 1);
}
dijkstra(idx, sn);
re = 0;
} else {
st = 1;
idx = 0;
}
}
} else {
idx = (idx << 1) + y;
c++;
if (c == 11) {
c = 0;
st = 0;
dijkstra(idx, re);
re = 0;
}
}
}
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
523 ms |
788 KB |
Output is correct |
2 |
Correct |
0 ms |
656 KB |
Output is correct |
3 |
Correct |
459 ms |
800 KB |
Output is correct |
4 |
Correct |
556 ms |
10256 KB |
Output is correct |
5 |
Correct |
25 ms |
912 KB |
Output is correct |
6 |
Correct |
477 ms |
2188 KB |
Output is correct |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
1 ms |
656 KB |
Output is correct |
2 |
Correct |
509 ms |
748 KB |
Output is correct |
3 |
Correct |
589 ms |
800 KB |
Output is correct |
4 |
Correct |
739 ms |
27564 KB |
Output is correct |
5 |
Correct |
615 ms |
24072 KB |
Output is correct |
6 |
Correct |
111 ms |
656 KB |
Output is correct |
7 |
Correct |
705 ms |
24268 KB |
Output is correct |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
449 ms |
728 KB |
Output is correct |
2 |
Correct |
1 ms |
656 KB |
Output is correct |
3 |
Correct |
490 ms |
660 KB |
Output is correct |
4 |
Correct |
381 ms |
740 KB |
Output is correct |
5 |
Correct |
538 ms |
740 KB |
Output is correct |
6 |
Correct |
433 ms |
728 KB |
Output is correct |
7 |
Correct |
388 ms |
740 KB |
Output is correct |
8 |
Correct |
506 ms |
668 KB |
Output is correct |
9 |
Correct |
402 ms |
660 KB |
Output is correct |
10 |
Correct |
463 ms |
788 KB |
Output is correct |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
205 ms |
688 KB |
Output is correct |
2 |
Correct |
229 ms |
656 KB |
Output is correct |
3 |
Correct |
263 ms |
13276 KB |
Output is correct |
4 |
Correct |
264 ms |
656 KB |
Output is correct |
5 |
Correct |
309 ms |
10092 KB |
Output is correct |
6 |
Correct |
188 ms |
656 KB |
Output is correct |
7 |
Correct |
243 ms |
676 KB |
Output is correct |
8 |
Correct |
252 ms |
724 KB |
Output is correct |
9 |
Correct |
238 ms |
18072 KB |
Output is correct |
10 |
Correct |
287 ms |
18212 KB |
Output is correct |
11 |
Correct |
471 ms |
35724 KB |
Output is correct |
12 |
Correct |
369 ms |
30536 KB |
Output is correct |
13 |
Correct |
219 ms |
656 KB |
Output is correct |
14 |
Correct |
0 ms |
656 KB |
Output is correct |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
205 ms |
688 KB |
Output is correct |
2 |
Correct |
229 ms |
656 KB |
Output is correct |
3 |
Correct |
263 ms |
13276 KB |
Output is correct |
4 |
Correct |
264 ms |
656 KB |
Output is correct |
5 |
Correct |
309 ms |
10092 KB |
Output is correct |
6 |
Correct |
188 ms |
656 KB |
Output is correct |
7 |
Correct |
243 ms |
676 KB |
Output is correct |
8 |
Correct |
252 ms |
724 KB |
Output is correct |
9 |
Correct |
238 ms |
18072 KB |
Output is correct |
10 |
Correct |
287 ms |
18212 KB |
Output is correct |
11 |
Correct |
471 ms |
35724 KB |
Output is correct |
12 |
Correct |
369 ms |
30536 KB |
Output is correct |
13 |
Correct |
219 ms |
656 KB |
Output is correct |
14 |
Correct |
0 ms |
656 KB |
Output is correct |
15 |
Correct |
339 ms |
656 KB |
Output is correct |
16 |
Correct |
192 ms |
716 KB |
Output is correct |
17 |
Correct |
280 ms |
656 KB |
Output is correct |
18 |
Correct |
346 ms |
10152 KB |
Output is correct |
19 |
Correct |
249 ms |
716 KB |
Output is correct |
20 |
Correct |
343 ms |
10320 KB |
Output is correct |
21 |
Correct |
270 ms |
736 KB |
Output is correct |
22 |
Correct |
235 ms |
732 KB |
Output is correct |
23 |
Correct |
373 ms |
22152 KB |
Output is correct |
24 |
Correct |
408 ms |
22156 KB |
Output is correct |
25 |
Correct |
586 ms |
43496 KB |
Output is correct |
26 |
Correct |
449 ms |
36476 KB |
Output is correct |
27 |
Correct |
227 ms |
756 KB |
Output is correct |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
205 ms |
688 KB |
Output is correct |
2 |
Correct |
229 ms |
656 KB |
Output is correct |
3 |
Correct |
263 ms |
13276 KB |
Output is correct |
4 |
Correct |
264 ms |
656 KB |
Output is correct |
5 |
Correct |
309 ms |
10092 KB |
Output is correct |
6 |
Correct |
188 ms |
656 KB |
Output is correct |
7 |
Correct |
243 ms |
676 KB |
Output is correct |
8 |
Correct |
252 ms |
724 KB |
Output is correct |
9 |
Correct |
238 ms |
18072 KB |
Output is correct |
10 |
Correct |
287 ms |
18212 KB |
Output is correct |
11 |
Correct |
471 ms |
35724 KB |
Output is correct |
12 |
Correct |
369 ms |
30536 KB |
Output is correct |
13 |
Correct |
219 ms |
656 KB |
Output is correct |
14 |
Correct |
0 ms |
656 KB |
Output is correct |
15 |
Correct |
339 ms |
656 KB |
Output is correct |
16 |
Correct |
192 ms |
716 KB |
Output is correct |
17 |
Correct |
280 ms |
656 KB |
Output is correct |
18 |
Correct |
346 ms |
10152 KB |
Output is correct |
19 |
Correct |
249 ms |
716 KB |
Output is correct |
20 |
Correct |
343 ms |
10320 KB |
Output is correct |
21 |
Correct |
270 ms |
736 KB |
Output is correct |
22 |
Correct |
235 ms |
732 KB |
Output is correct |
23 |
Correct |
373 ms |
22152 KB |
Output is correct |
24 |
Correct |
408 ms |
22156 KB |
Output is correct |
25 |
Correct |
586 ms |
43496 KB |
Output is correct |
26 |
Correct |
449 ms |
36476 KB |
Output is correct |
27 |
Correct |
227 ms |
756 KB |
Output is correct |
28 |
Correct |
377 ms |
656 KB |
Output is correct |
29 |
Correct |
245 ms |
656 KB |
Output is correct |
30 |
Correct |
496 ms |
24044 KB |
Output is correct |
31 |
Correct |
256 ms |
656 KB |
Output is correct |
32 |
Correct |
452 ms |
21092 KB |
Output is correct |
33 |
Correct |
348 ms |
864 KB |
Output is correct |
34 |
Correct |
334 ms |
884 KB |
Output is correct |
35 |
Correct |
418 ms |
764 KB |
Output is correct |
36 |
Correct |
445 ms |
24708 KB |
Output is correct |
37 |
Correct |
463 ms |
24708 KB |
Output is correct |
38 |
Correct |
497 ms |
48888 KB |
Output is correct |
39 |
Correct |
543 ms |
44244 KB |
Output is correct |
40 |
Correct |
360 ms |
1040 KB |
Output is correct |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
523 ms |
788 KB |
Output is correct |
2 |
Correct |
0 ms |
656 KB |
Output is correct |
3 |
Correct |
459 ms |
800 KB |
Output is correct |
4 |
Correct |
556 ms |
10256 KB |
Output is correct |
5 |
Correct |
25 ms |
912 KB |
Output is correct |
6 |
Correct |
477 ms |
2188 KB |
Output is correct |
7 |
Correct |
1 ms |
656 KB |
Output is correct |
8 |
Correct |
509 ms |
748 KB |
Output is correct |
9 |
Correct |
589 ms |
800 KB |
Output is correct |
10 |
Correct |
739 ms |
27564 KB |
Output is correct |
11 |
Correct |
615 ms |
24072 KB |
Output is correct |
12 |
Correct |
111 ms |
656 KB |
Output is correct |
13 |
Correct |
705 ms |
24268 KB |
Output is correct |
14 |
Correct |
449 ms |
728 KB |
Output is correct |
15 |
Correct |
1 ms |
656 KB |
Output is correct |
16 |
Correct |
490 ms |
660 KB |
Output is correct |
17 |
Correct |
381 ms |
740 KB |
Output is correct |
18 |
Correct |
538 ms |
740 KB |
Output is correct |
19 |
Correct |
433 ms |
728 KB |
Output is correct |
20 |
Correct |
388 ms |
740 KB |
Output is correct |
21 |
Correct |
506 ms |
668 KB |
Output is correct |
22 |
Correct |
402 ms |
660 KB |
Output is correct |
23 |
Correct |
463 ms |
788 KB |
Output is correct |
24 |
Correct |
205 ms |
688 KB |
Output is correct |
25 |
Correct |
229 ms |
656 KB |
Output is correct |
26 |
Correct |
263 ms |
13276 KB |
Output is correct |
27 |
Correct |
264 ms |
656 KB |
Output is correct |
28 |
Correct |
309 ms |
10092 KB |
Output is correct |
29 |
Correct |
188 ms |
656 KB |
Output is correct |
30 |
Correct |
243 ms |
676 KB |
Output is correct |
31 |
Correct |
252 ms |
724 KB |
Output is correct |
32 |
Correct |
238 ms |
18072 KB |
Output is correct |
33 |
Correct |
287 ms |
18212 KB |
Output is correct |
34 |
Correct |
471 ms |
35724 KB |
Output is correct |
35 |
Correct |
369 ms |
30536 KB |
Output is correct |
36 |
Correct |
219 ms |
656 KB |
Output is correct |
37 |
Correct |
0 ms |
656 KB |
Output is correct |
38 |
Correct |
339 ms |
656 KB |
Output is correct |
39 |
Correct |
192 ms |
716 KB |
Output is correct |
40 |
Correct |
280 ms |
656 KB |
Output is correct |
41 |
Correct |
346 ms |
10152 KB |
Output is correct |
42 |
Correct |
249 ms |
716 KB |
Output is correct |
43 |
Correct |
343 ms |
10320 KB |
Output is correct |
44 |
Correct |
270 ms |
736 KB |
Output is correct |
45 |
Correct |
235 ms |
732 KB |
Output is correct |
46 |
Correct |
373 ms |
22152 KB |
Output is correct |
47 |
Correct |
408 ms |
22156 KB |
Output is correct |
48 |
Correct |
586 ms |
43496 KB |
Output is correct |
49 |
Correct |
449 ms |
36476 KB |
Output is correct |
50 |
Correct |
227 ms |
756 KB |
Output is correct |
51 |
Correct |
377 ms |
656 KB |
Output is correct |
52 |
Correct |
245 ms |
656 KB |
Output is correct |
53 |
Correct |
496 ms |
24044 KB |
Output is correct |
54 |
Correct |
256 ms |
656 KB |
Output is correct |
55 |
Correct |
452 ms |
21092 KB |
Output is correct |
56 |
Correct |
348 ms |
864 KB |
Output is correct |
57 |
Correct |
334 ms |
884 KB |
Output is correct |
58 |
Correct |
418 ms |
764 KB |
Output is correct |
59 |
Correct |
445 ms |
24708 KB |
Output is correct |
60 |
Correct |
463 ms |
24708 KB |
Output is correct |
61 |
Correct |
497 ms |
48888 KB |
Output is correct |
62 |
Correct |
543 ms |
44244 KB |
Output is correct |
63 |
Correct |
360 ms |
1040 KB |
Output is correct |
64 |
Correct |
409 ms |
956 KB |
Output is correct |
65 |
Correct |
536 ms |
26500 KB |
Output is correct |
66 |
Correct |
681 ms |
23360 KB |
Output is correct |
67 |
Correct |
487 ms |
940 KB |
Output is correct |
68 |
Correct |
493 ms |
936 KB |
Output is correct |
69 |
Correct |
741 ms |
47604 KB |
Output is correct |
70 |
Correct |
698 ms |
39384 KB |
Output is correct |
71 |
Correct |
488 ms |
4964 KB |
Output is correct |
72 |
Correct |
461 ms |
1188 KB |
Output is correct |