Submission #115289

#TimeUsernameProblemLanguageResultExecution timeMemory
115289faustaadpWombats (IOI13_wombats)C++17
55 / 100
20084 ms44004 KiB
#include "wombats.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,m,i,j,x[5050][220],y[5050][220],jum,d[2][5050][2],te,b[5050][220]; void upd() { ll ii; d[0][n-1][0]=0; d[0][n-1][1]=x[n-1][0]; d[1][n-1][1]=0; d[1][n-1][0]=x[n-1][0]; for(ii=n-2;ii>=0;ii--) { d[0][ii][0]=min(d[0][ii+1][0]+y[ii][0],d[0][ii+1][1]+y[ii][1]+x[ii][0]); d[0][ii][1]=min(d[0][ii+1][1]+y[ii][1],d[0][ii+1][0]+y[ii][0]+x[ii][0]); d[1][ii][0]=min(d[1][ii+1][0]+y[ii][0],d[1][ii+1][1]+y[ii][1]+x[ii][0]); d[1][ii][1]=min(d[1][ii+1][1]+y[ii][1],d[1][ii+1][0]+y[ii][0]+x[ii][0]); } //for(ii=0;ii<n;ii++) // cout<<ii<<" "<<d[0][ii][0]<<" "<<d[0][ii][1]<<"\n"; } void init(int R, int C, int H[5000][200], int V[5000][200]) { n=R; m=C; for(i=0;i<n;i++) for(j=0;j<(m-1);j++) x[i][j]=H[i][j]; for(i=0;i<(n-1);i++) for(j=0;j<m;j++) y[i][j]=V[i][j]; if(m==2) { upd(); } else if(m==1) { for(i=0;i<(n-1);i++) jum+=y[i][0]; } /* ... */ } void changeH(int P, int Q, int W) { if(m==2) { x[P][Q]=W; upd(); } else x[P][Q]=W; /* ... */ } void changeV(int P, int Q, int W) { if(m==2) { y[P][Q]=W; upd(); } else if(m==1) { jum-=y[P][Q]; y[P][Q]=W; jum+=y[P][Q]; } else y[P][Q]=W; /* ... */ } int escape(int V1, int V2) { if(m==2) { return d[V2][0][V1]; } else if(m==1) { return jum; } else { priority_queue<pair<ll,pair<ll,ll> > > pq; pq.push(mp(0,mp(0,V1))); te++; while(!pq.empty()) { ll jar=-pq.top().fi; ll X=pq.top().se.fi; ll Y=pq.top().se.se; pq.pop(); if(b[X][Y]==te)continue; b[X][Y]=te; if(X==n-1&&Y==V2) return jar; if(Y>0) if(b[X][Y-1]!=te) pq.push(mp(-jar-x[X][Y-1],mp(X,Y-1))); if(Y<(m-1)) if(b[X][Y+1]!=te) pq.push(mp(-jar-x[X][Y],mp(X,Y+1))); if(X<(n-1)) if(b[X+1][Y]!=te) pq.push(mp(-jar-y[X][Y],mp(X+1,Y))); } } }

Compilation message (stderr)

grader.c: In function 'int main()':
grader.c:15:6: warning: variable 'res' set but not used [-Wunused-but-set-variable]
  int res;
      ^~~
wombats.cpp: In function 'int escape(int, int)':
wombats.cpp:117:1: warning: control reaches end of non-void function [-Wreturn-type]
 }
 ^
#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...