#include "Azer.h"
#include <algorithm>
#include <queue>
#include <string>
#include <vector>
namespace {
std::string s;
int s_idx = 0;
std::vector<int> ans;
std::vector<std::vector<std::pair<int, int>>> adj;
int n;
} // namespace
void InitA(int N, int A, std::vector<int> U, std::vector<int> V,
std::vector<int> C) {
n = N;
adj = std::vector<std::vector<std::pair<int, int>>>(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]});
}
}
void ReceiveA(bool x) { s.push_back(x + '0'); }
std::vector<int> Answer() {
for (int i = 0; i < n; ++i) {
if (s[s_idx++] == '0') {
continue;
}
while (true) {
if (s[s_idx++] == '0') {
break;
}
int v = 0, w = 0;
for (int i = 0; i < 12; ++i) {
v += (s[s_idx++] - '0') * (1 << i);
}
for (int i = 0; i < 10; ++i) {
w += (s[s_idx++] - '0') * (1 << i);
}
adj[i].push_back({v, w});
adj[v].push_back({i, w});
}
}
ans = std::vector<int>(n, (1 << 30) - 1);
ans[0] = 0;
std::priority_queue<std::pair<int, int>> pq;
pq.push({0, 0});
std::vector<bool> vis(n);
while (!pq.empty()) {
auto [dist, node] = pq.top();
dist = -dist;
pq.pop();
if (vis[node]) {
continue;
}
vis[node] = true;
for (auto &[i, wt] : adj[node]) {
if (dist + wt < ans[i]) {
ans[i] = dist + wt;
pq.push({-ans[i], i});
}
}
}
return ans;
}
#include "Baijan.h"
#include <queue>
#include <vector>
void InitB(int N, int B, std::vector<int> S, std::vector<int> T,
std::vector<int> D) {
std::vector<std::vector<std::pair<int, int>>> adj(N);
for (int i = 0; i < B; ++i) {
adj[std::min(S[i], T[i])].push_back({std::max(S[i], T[i]), D[i]});
}
for (int i = 0; i < N; ++i) {
if (adj[i].empty()) {
SendB(false);
continue;
}
SendB(true);
for (auto &[v, w] : adj[i]) {
SendB(true);
for (int i = 0; i < 12; ++i) {
SendB(!!(v & (1 << i)));
}
for (int i = 0; i < 10; ++i) {
SendB(!!(w & (1 << i)));
}
}
SendB(false);
}
}
void ReceiveB(bool y) {}
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |