Submission #114355

#TimeUsernameProblemLanguageResultExecution timeMemory
114355faustaadpShortcut (IOI16_shortcut)C++17
0 / 100
2 ms384 KiB
#include "shortcut.h" #include<bits/stdc++.h> typedef long long ll; #define pb push_back #define mp make_pair #define fi first #define se second using namespace std; ll n,i,jar[550],tam[550],has,j,d[550],C; vector<ll> v[550],w[550]; ll cek(ll aa,ll bb) { ll ii; for(ii=0;ii<(n*2);ii++) { v[ii].clear(); w[ii].clear(); } for(ii=0;ii<(n-1);ii++) { v[ii].pb(ii+1); w[ii].pb(jar[ii]); v[ii+1].pb(ii); w[ii+1].pb(jar[ii]); } for(ii=0;ii<n;ii++) { v[ii].pb(ii+n); w[ii].pb(tam[ii]); v[ii+n].pb(ii); w[ii+n].pb(tam[ii]); } v[aa].pb(bb); w[aa].pb(C); v[bb].pb(aa); w[bb].pb(C); priority_queue<pair<ll,ll> > pq; ll ma=0,cln=0; for(ii=0;ii<(n*2);ii++) d[ii]=1e18; d[0]=0; pq.push(mp(0,0)); while(!pq.empty()) { ll u=pq.top().se; ll dis=-pq.top().fi; pq.pop(); if(d[u]!=dis) continue; //cout<<aa<<" "<<bb<<" "<<u<<" "<<dis<<" "<<d[u]<<"\n"; ma=max(ma,d[u]); if(ma==d[u]) cln=u; ll ii; for(ii=0;ii<v[u].size();ii++) { if(d[v[u][ii]]>d[u]+w[u][ii]) { d[v[u][ii]]=d[u]+w[u][ii]; pq.push(mp(-d[v[u][ii]],v[u][ii])); } } } //cout<<ma<<" "<<cln<<"\n"; ma=0; for(ii=0;ii<(n*2);ii++) d[ii]=1e18; d[cln]=0; pq.push(mp(0,cln)); cln=0; while(!pq.empty()) { ll u=pq.top().se; ll dis=-pq.top().fi; pq.pop(); if(d[u]!=dis) continue; ma=max(ma,d[u]); if(ma==d[u]) cln=u; ll ii; for(ii=0;ii<v[u].size();ii++) { if(d[v[u][ii]]>d[u]+w[u][ii]) { d[v[u][ii]]=d[u]+w[u][ii]; pq.push(mp(-d[v[u][ii]],v[u][ii])); } } } //cout<<ma<<"\n"; return ma; } long long find_shortcut(int N, std::vector<int> l, std::vector<int> d, int c) { n=N; C=c; for(i=0;i<(n-1);i++) jar[i]=l[i]; for(i=0;i<n;i++) tam[i]=d[i]; has=1e18; for(i=0;i<n;i++) for(j=i+1;j<n;j++) has=min(has,cek(i,j)); return has; }

Compilation message (stderr)

shortcut.cpp: In function 'll cek(ll, ll)':
shortcut.cpp:55:14: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
   for(ii=0;ii<v[u].size();ii++)
            ~~^~~~~~~~~~~~
shortcut.cpp:82:14: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
   for(ii=0;ii<v[u].size();ii++)
            ~~^~~~~~~~~~~~
#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...
#Verdict Execution timeMemoryGrader output
Fetching results...