Submission #591573

#TimeUsernameProblemLanguageResultExecution timeMemory
591573yutabiShortcut (IOI16_shortcut)C++14
0 / 100
2099 ms308 KiB
#include "shortcut.h" #include <bits/stdc++.h> using namespace std; #define pb push_back typedef long long ll; typedef pair <ll,int> ii; ll maxi=100000000000000000; ll best[3000]; ll ans=maxi; vector <vector <ii> > graph; bool v[3000]; long long find_shortcut(int n, std::vector<int> l, std::vector<int> d, int c) { graph=vector <vector <ii> > (2*n); for(int i=0;i<n;i++) { if(i!=n-1) { graph[i].pb(ii(l[i],i+1)); graph[i+1].pb(ii(l[i],i)); } graph[i].pb(ii(d[i],i+n)); graph[i+n].pb(ii(d[i],i)); } for(int i=0;i<n;i++) { for(int j=i+1;j<n;j++) { graph[i].pb(ii(c,j)); graph[j].pb(ii(c,i)); ll maxii=0; for(int k=0;k<2*n;k++) { for(int l=0;l<2*n;l++) { best[l]=maxi; v[l]=0; } priority_queue <ii> pq; pq.push(ii(0,k)); while(pq.size()) { int node=pq.top().second; ll dist=-pq.top().first; pq.pop(); if(v[node]) { continue; } best[node]=dist; v[node]=1; for(int l=0;l<graph[node].size();l++) { pq.push(ii(-(dist+graph[node][l].first),graph[node][l].second)); } } for(int l=0;l<2*n;l++) { maxii=max(maxii,best[l]); } } ans=min(ans,maxii); graph[i].pop_back(); graph[j].pop_back(); } } return ans; }

Compilation message (stderr)

shortcut.cpp: In function 'long long int find_shortcut(int, std::vector<int>, std::vector<int>, int)':
shortcut.cpp:82:34: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<std::pair<long long int, int> >::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   82 |                     for(int l=0;l<graph[node].size();l++)
      |                                 ~^~~~~~~~~~~~~~~~~~~
#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...