Submission #114369

#TimeUsernameProblemLanguageResultExecution timeMemory
114369faustaadpShortcut (IOI16_shortcut)C++17
31 / 100
1406 ms2680 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][550],C,b[550]; vector<ll> v[550],w[550]; void PC() { ll ii,jj,kk,ma=0; for(ii=0;ii<n*2;ii++) for(jj=0;jj<n*2;jj++) if(ii!=jj) d[ii][jj]=1e18; for(ii=0;ii<n*2;ii++) for(jj=0;jj<v[ii].size();jj++) d[ii][v[ii][jj]]=min(d[ii][v[ii][jj]],w[ii][jj]); for(kk=0;kk<n*2;kk++) for(ii=0;ii<n*2;ii++) for(jj=0;jj<n*2;jj++) d[ii][jj]=min(d[ii][jj],d[ii][kk]+d[kk][jj]); } ll cek(ll aa,ll bb) { ll ma=0; ll ii,jj; for(ii=n;ii<n*2;ii++) for(jj=ii+1;jj<n*2;jj++) { if(ma>=has) return ma; ma=max(ma,min(d[ii][jj],min(d[ii][aa]+C+d[bb][jj],d[ii][bb]+C+d[aa][jj]))); } return ma; //cout<<aa<<" "<<bb<<" "<<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<<aa<<" "<<bb<<" "<<ma<<"\n"; //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]; for(i=0;i<(n-1);i++) { v[i].pb(i+1); w[i].pb(jar[i]); v[i+1].pb(i); w[i+1].pb(jar[i]); } for(i=0;i<n;i++) { v[i].pb(i+n); w[i].pb(tam[i]); v[i+n].pb(i); w[i+n].pb(tam[i]); } PC(); 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 'void PC()':
shortcut.cpp:19:14: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
   for(jj=0;jj<v[ii].size();jj++)
            ~~^~~~~~~~~~~~~
shortcut.cpp:13:14: warning: unused variable 'ma' [-Wunused-variable]
  ll ii,jj,kk,ma=0;
              ^~
#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...