Submission #1176315

#TimeUsernameProblemLanguageResultExecution timeMemory
1176315avighnaTwo Transportations (JOI19_transportations)C++20
6 / 100
172 ms10456 KiB
#include "Azer.h" #include <algorithm> #include <string> #include <vector> namespace { std::string s; int n; } // namespace void InitA(int N, int A, std::vector<int> U, std::vector<int> V, std::vector<int> C) { n = N; } void ReceiveA(bool x) { s.push_back(x + '0'); } std::vector<int> Answer() { std::vector<int> ans(n); for (int i = 0, j = 0; i < s.length(); i += 29, j++) { std::string _s = s.substr(i, 29); std::reverse(_s.begin(), _s.end()); ans[j] = std::stoi(_s, nullptr, 2); } 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[S[i]].push_back({T[i], D[i]}); adj[T[i]].push_back({S[i], D[i]}); } std::vector<int> ans(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}); } } } for (int i = 0; i < N; ++i) { for (int bt = 0; bt < 29; ++bt) { if (ans[i] & (1 << bt)) { SendB(true); } else { SendB(false); } } } } void ReceiveB(bool y) {}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...