#include "Azer.h"
#include <bits/stdc++.h>
using namespace std;
using ii = pair<int,int>;
namespace {
int N;
vector<bool> res;
vector<ii> adj[2005];
int dist[2005];
void dijkstra(int s) {
memset(dist,1,sizeof(dist));
priority_queue<ii,vector<ii>,greater<ii>> pq;
dist[s] = 0;
pq.push({0,s});
while(pq.size()) {
auto [d, x] = pq.top();
pq.pop();
if(d != dist[x])
continue;
for(auto [i, di]: adj[x])
if(dist[i] > dist[x] + di) {
dist[i] = dist[x] + di;
pq.push({dist[i],i});
}
}
}
}
void InitA(int N, int A, std::vector<int> U, std::vector<int> V,
std::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]});
}
}
void ReceiveA(bool x) {
res.push_back(x);
}
std::vector<int> Answer() {
int E = res.size() / 31;
for(int i=0;i<E;i++) {
int U = 0, V = 0, C = 0;
for(int j=0;j<11;j++)
U |= (res[31*i+j] << j);
for(int j=0;j<11;j++)
V |= (res[31*i+j+11] << j);
for(int j=0;j<9;j++)
C |= (res[31*i+j+22] << j);
adj[U].push_back({V,C});
adj[V].push_back({U,C});
}
dijkstra(0);
vector<int> ans(dist,dist+N);
return ans;
}
#include "Baijan.h"
#include <bits/stdc++.h>
using namespace std;
using ii = pair<int,int>;
void InitB(int N, int B, std::vector<int> S, std::vector<int> T,
std::vector<int> D) {
for(int i=0;i<B;i++) {
for(int j=0;j<11;j++)
SendB(S[i]&(1<<j));
for(int j=0;j<11;j++)
SendB(T[i]&(1<<j));
for(int j=0;j<9;j++)
SendB(D[i]&(1<<j));
}
}
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... |