Submission #224082

#TimeUsernameProblemLanguageResultExecution timeMemory
224082oolimryOlympic Bus (JOI20_ho_t4)C++14
0 / 100
73 ms3936 KiB
#include <bits/stdc++.h> using namespace std; long long inf = (1LL << 56LL); typedef pair<long long, long long> ii; vector<ii> adjO[205]; vector<ii> adj[205]; long long dis[205]; int n, m; long long dij(int s, int t){ fill(dis, dis + (n+1), inf); priority_queue<ii, vector<ii>, greater<ii> > dtr; /// use greater<int> dtr.push(ii(0,s)); dis[s] = 0; ///first is minpath, second is vertex while(!dtr.empty()){ ii cur = dtr.top(); dtr.pop(); for(int j = 0;j < (int) adj[cur.second].size();j++){ ii nei = adj[cur.second][j]; if(nei.first + cur.first < dis[nei.second]){ dis[nei.second] = nei.first + cur.first; dtr.push(ii(dis[nei.second],nei.second)); } } } return dis[t]; } struct edge{ long long u, v, c, d; }; vector<edge> edges; void invert(int u, int v){ for(int j = 0;j < adj[u].size();j++){ if(adj[u][j].second == v){ adj[v].push_back(ii(adj[u][j].first,u)); swap(adj[u][j], adj[u].back()); adj[u].pop_back(); return; } } assert(false); } void subtask1(){ long long ans = dij(1, n)+ dij(n, 1); for(edge e : edges){ invert(e.u, e.v); ans = min(ans, dij(1,n) + dij(n,1) + e.d); invert(e.v, e.u); } if(ans >= inf) ans = -1; cout << ans; exit(0); } int main(){ //freopen("i.txt","r",stdin); ios_base::sync_with_stdio(false); cin.tie(0); cin >> n >> m; for(int i = 0;i < m;i++){ long long u, v, c, d; cin >> u >> v >> c >> d; edges.push_back({u,v,c,d}); adj[u].push_back(ii(c,v)); } if(m <= 1000) subtask1(); }

Compilation message (stderr)

ho_t4.cpp: In function 'void invert(int, int)':
ho_t4.cpp:39:18: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
  for(int j = 0;j < adj[u].size();j++){
                ~~^~~~~~~~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...