Submission #1273748

#TimeUsernameProblemLanguageResultExecution timeMemory
1273748quanw267Commuter Pass (JOI18_commuter_pass)C++17
0 / 100
82 ms13176 KiB
#include<bits/stdc++.h> #define ll long long #define fi first #define se second #define pii pair<long long,long long> #define fast ios_base::sync_with_stdio(0), cin.tie(0); using namespace std; const long long N = 1e5; vector<pii> g[N+5]; void path(long long n, long long u, long long *d){ vector<long long> vis(n+2, 0); for(long long i=1; i<=n; i++) d[i] = 1e16; d[u] = 0; priority_queue<pii,vector<pii>,greater<pii>> q; q.push({0,u}); while(!q.empty()){ auto [kc,u] = q.top(); q.pop(); if(vis[u]) continue; vis[u] = 1; for(auto [v,w]:g[u]){ if(d[v] > d[u] + w){ d[v] = d[u] + w; q.push({d[v],v}); } } } } long long d[1000][1000]; main(){ fast long long n,m; cin >> n >> m; long long A,B; cin >> A >> B; long long C,D; cin >> C >> D; for(long long i=1; i<=m; i++){ long long u,v,w; cin >> u >> v >> w; g[u].push_back({v,w}); g[v].push_back({u,w}); } if(n <= 1000){ for(long long i=1; i<=n; i++) path(n, i, d[i]); //cout << d[A][B]; for(long long x=1; x<=n; x++) for(long long y=1; y<=n; y++){ long long kc = d[A][B]; if( d[A][x]+d[x][y]+d[y][B] == kc ) d[x][y] = d[y][x] = 0; } ll res = d[C][D]; for(long long x=1; x<=n; x++) for(long long y=1; y<=n; y++) if(d[x][y] == 0) res = min(res, d[C][x] + d[y][D]); cout << res; return 0; } return 0; }

Compilation message (stderr)

commuter_pass.cpp:39:1: warning: ISO C++ forbids declaration of 'main' with no type [-Wreturn-type]
   39 | main(){
      | ^~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...