#include "Azer.h"
#include <bits/stdc++.h>
using namespace std;
namespace {
vector<bool> res;
}
void InitA(int N, int A, std::vector<int> U, std::vector<int> V,
std::vector<int> C) {}
void ReceiveA(bool x) {
res.push_back(x);
}
std::vector<int> Answer() {
int N = res.size() / 20;
vector<int> ans(N,0);
for(int i=0;i<N;i++)
for(int j=0;j<20;j++)
ans[i] += (res[20*i+j] << j);
return ans;
}
#include "Baijan.h"
#include <bits/stdc++.h>
using namespace std;
using ii = pair<int,int>;
namespace {
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 InitB(int N, int B, std::vector<int> S, std::vector<int> T,
std::vector<int> D) {
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]});
}
dijkstra(0);
for(int i=0;i<N;i++)
for(int j=0;j<20;j++)
SendB(dist[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... |