Submission #924382

#TimeUsernameProblemLanguageResultExecution timeMemory
924382yeediotOlympic Bus (JOI20_ho_t4)C++14
0 / 100
20 ms7116 KiB
#include<bits/stdc++.h> using namespace std; #define int long long #define pii pair<int,int> #define sz(x) (int)(x.size()) #define all(x) x.begin(),x.end() #define F first #define S second #define pb push_back #ifdef local void setio(){freopen("/Users/iantsai/Library/Mobile Documents/com~apple~CloudDocs/cpp/Empty.md","r",stdin);} #define debug(x...) cerr << "[" << #x << "] = ["; _print(x) #else void setio(){} #define debug(x...) #endif struct edge{ int a,b,c,d; }; const int mxn=405; vector<edge>e; vector<pii>adj[mxn]; int dij(int st,int ed){ vector<int>dis(mxn); for(int i=0;i<mxn;i++)dis[i]=2e18; dis[st]=0; priority_queue<pii,vector<pii>,greater<pii>>pq; pq.push({0,st}); while(sz(pq)){ auto [d,v]=pq.top(); pq.pop(); if(dis[v]<d)continue; //cout<<v<<' '; for(auto [u,dd]:adj[v]){ if(dis[v]+dd<dis[u]){ dis[u]=dis[v]+dd; pq.push({dis[u],u}); } } } for(int i=1;i<=8;i++)cout<<dis[i]<<' '; cout<<'\n'; return dis[ed]; } signed main(){ ios::sync_with_stdio(0); cin.tie(0);cout.tie(0); setio(); int n,m; cin>>n>>m; for(int i=0;i<m;i++){ int a,b,c,d; cin>>a>>b>>c>>d; e.pb({a,b,c,d}); adj[a].pb({b,c}); adj[b].pb({a+n,d+c}); //adj[a+n].pb({b,d+c}); adj[b+n].pb({a,d+c}); adj[a+n].pb({b+n,c}); cin>>a>>b>>c>>d; } int ans=dij(1,n)+dij(n,1); //cout<<ans<<'\n'; ans=min(ans,dij(1,2*n)+dij(n,1)); //cout<<ans<<'\n'; ans=min(ans,dij(2*n,1)+dij(1,n)); if(ans>(int)1e18){ cout<<-1<<'\n'; return 0; } cout<<ans<<'\n'; } /* */

Compilation message (stderr)

ho_t4.cpp: In function 'long long int dij(long long int, long long int)':
ho_t4.cpp:30:14: warning: structured bindings only available with '-std=c++17' or '-std=gnu++17'
   30 |         auto [d,v]=pq.top();
      |              ^
ho_t4.cpp:34:18: warning: structured bindings only available with '-std=c++17' or '-std=gnu++17'
   34 |         for(auto [u,dd]:adj[v]){
      |                  ^
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...