Submission #405853

#TimeUsernameProblemLanguageResultExecution timeMemory
405853A_DJakarta Skyscrapers (APIO15_skyscraper)C++14
57 / 100
75 ms70504 KiB
#include<bits/stdc++.h> #define int long long #define ii pair<int,int> #define F first #define S second using namespace std; const int N=2e3+100; vector<int> vec[N]; int vis[N][N]; int dis,st,n; set<int> stt; deque<ii> deq; bool in(int x) { return 0<=x && x<n; } void fix(int v,int w) { if(in(v+w)&&vis[v+w][w]>vis[v][w]+1){ // cout<<5<<endl; vis[v+w][w]=vis[v][w]+1; deq.push_back({v+w,w}); } if(in(v-w)&&vis[v-w][w]>vis[v][w]+1){ // cout<<5<<endl; vis[v-w][w]=vis[v][w]+1; deq.push_back({v-w,w}); } } int bfs() { deq.push_back({st,0}); while(deq.empty()==0){ int v=deq[0].F; int w=deq[0].S; deq.pop_front(); stt.insert(v); if(v==dis)return vis[v][w]; fix(v,w); // cout<<v<<" "<<w<<endl; for(auto x:vec[v]){ vis[v][x]=min(vis[v][x],vis[v][w]); fix(v,x); // cout<<v<<" "<<x<<endl; } vec[v].clear(); } return -1; } main() { int m; cin>>n>>m; for(int i=0;i<=n;i++){ for(int j=0;j<=n;j++){ vis[i][j]=1e18; } } int x,y; cin>>x>>y; vis[x][0]=0; vec[x].push_back(y); st=x; cin>>x>>y; vec[x].push_back(y); dis=x; m-=2; while(m--){ cin>>x>>y; vec[x].push_back(y); } cout<<bfs()<<endl; // for(auto x:stt)cout<<x<<" ";cout<<endl; } /* 5 3 0 2 1 1 4 1 */

Compilation message (stderr)

skyscraper.cpp:50:1: warning: ISO C++ forbids declaration of 'main' with no type [-Wreturn-type]
   50 | 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...
#Verdict Execution timeMemoryGrader output
Fetching results...