Submission #1176321

#TimeUsernameProblemLanguageResultExecution timeMemory
1176321avighnaTwo Transportations (JOI19_transportations)C++20
16 / 100
147 ms27528 KiB
#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 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...