Submission #788172

#TimeUsernameProblemLanguageResultExecution timeMemory
788172someoneTwo Transportations (JOI19_transportations)C++14
Compilation error
0 ms0 KiB
#include "transportations.hpp" namespace Azer { // start namespace Azer struct Arc { int nex, pds; }; const int N = 2e3 + 42, INF = 1e6 + 42; bool sent[N]; int n, knows[N]; vector<bool> msg; vector<int> dist; vector<Arc> arc[N]; priority_queue<pair<int, int>> pq; void Init(int X, int a, vector<int> U, vector<int> V, vector<int> C) { n = X; dist.resize(n); for(int i = 0; i < a; i++) { arc[U[i]].push_back({V[i], C[i]}); arc[V[i]].push_back({U[i], C[i]}); } for(int i = 1; i < n; i++) knows[i] = dist[i] = INF; for(int i = 0; i < n; i++) pq.push({-dist[i], i}); bool envoi = false; while(!envoi && !pq.empty()) { int i = pq.top().second, d = -pq.top().first; pq.pop(); if(dist[i] == d) { for(Arc a : arc[i]) { if(dist[a.nex] > dist[i] + a.pds) { dist[a.nex] = dist[i] + a.pds; pq.push({-dist[a.nex], a.nex}); } } if(!sent[i]) { //cout << "Azer envoie " << i << ' ' << d << '\n'; sent[i] = true; envoi = true; for(int j = 0; j < 11; j++) Send(i & (1 << j)); for(int j = 0; j < 20; j++) Send(d & (1 << j)); } } } } void Receive(bool x) { msg.push_back(x); if(31 == (int)msg.size()) { int i = 0, d = 0; for(int j = 0; j < 11; j++) i += (1 << j) * msg[j]; for(int j = 0; j < 20; j++) d += (1 << j) * msg[j + 11]; msg.clear(); dist[i] = min(dist[i], d); pq.push({-dist[i], i}); knows[i] = d; bool envoi = false; while(!envoi && !pq.empty()) { i = pq.top().second, d = -pq.top().first; pq.pop(); if(dist[i] == d) { for(Arc a : arc[i]) { if(dist[a.nex] > dist[i] + a.pds) { dist[a.nex] = dist[i] + a.pds; pq.push({-dist[a.nex], a.nex}); } } if(!sent[i] && knows[i] > d) { //cout << "Azer envoie " << i << ' ' << d << '\n'; knows[i] = d; sent[i] = true; envoi = true; for(int j = 0; j < 11; j++) Send(i & (1 << j)); for(int j = 0; j < 20; j++) Send(d & (1 << j)); } } } if(!envoi) for(int j = 0; j < n; j++) if(dist[j] == INF) { for(int k = 0; k < 11; k++) Send(j & (1 << k)); for(int k = 0; k < 20; k++) Send(INF & (1 << k)); } } } vector<int> Answer() { return dist; } } // end namespace Azer
#include "transportations.hpp" namespace Baijan { // start namespace Baijan struct Arc { int nex, pds; }; const int N = 2e3 + 42, INF = 1e6 + 42; bool sent[N]; int n, knows[N]; vector<int> dist; vector<Arc> arc[N]; vector<bool> msg; priority_queue<pair<int, int>> pq; void Init(int X, int b, vector<int> S, vector<int> T, vector<int> D) { n = X; dist.resize(n); for(int i = 0; i < b; i++) { arc[S[i]].push_back({T[i], D[i]}); arc[T[i]].push_back({S[i], D[i]}); } for(int i = 1; i < n; i++) knows[i] = dist[i] = INF; for(int i = 0; i < n; i++) pq.push({-dist[i], i}); } void Receive(bool y) { msg.push_back(y); if(31 == (int)msg.size()) { int i = 0, d = 0; for(int j = 0; j < 11; j++) i += (1 << j) * msg[j]; for(int j = 0; j < 20; j++) d += (1 << j) * msg[j + 11]; msg.clear(); dist[i] = min(dist[i], d); pq.push({-dist[i], i}); knows[i] = d; bool envoi = false; while(!envoi && !pq.empty()) { i = pq.top().second, d = -pq.top().first; pq.pop(); if(dist[i] == d) { for(Arc a : arc[i]) { if(dist[a.nex] > dist[i] + a.pds) { dist[a.nex] = dist[i] + a.pds; pq.push({-dist[a.nex], a.nex}); } } if(!sent[i] && knows[i] > d) { knows[i] = d; //cout << "Baijan envoie " << i << ' ' << d << '\n'; sent[i] = true; envoi = true; for(int j = 0; j < 11; j++) Send(i & (1 << j)); for(int j = 0; j < 20; j++) Send(d & (1 << j)); } } } if(!envoi) for(int j = 0; j < n; j++) if(dist[j] == INF) { for(int k = 0; k < 11; k++) Send(j & (1 << k)); for(int k = 0; k < 20; k++) Send(INF & (1 << k)); } } } } // end namespace Baijan

Compilation message (stderr)

Azer.cpp:1:10: fatal error: transportations.hpp: No such file or directory
    1 | #include "transportations.hpp"
      |          ^~~~~~~~~~~~~~~~~~~~~
compilation terminated.

Baijan.cpp:1:10: fatal error: transportations.hpp: No such file or directory
    1 | #include "transportations.hpp"
      |          ^~~~~~~~~~~~~~~~~~~~~
compilation terminated.