Submission #897477

#TimeUsernameProblemLanguageResultExecution timeMemory
897477Muhammad_AneeqWombats (IOI13_wombats)C++17
37 / 100
20084 ms20060 KiB
#include <queue> #include "wombats.h" #include <algorithm> using namespace std; int costy[5000][200],costx[5000][200]; int r,c; void init(int R, int C, int H[5000][200], int V[5000][200]) { r=R; c=C; for (int i=0;i<C-1;i++) for (int j=0;j<R;j++) costx[j][i]=H[j][i]; for (int i=0;i<R-1;i++) for (int j=0;j<C;j++) costy[i][j]=V[i][j]; } int dist[5000][200]={}; bool check(int i,int j) { if (i>=0&&i<r&&j>=0&&j<c) return 1; return 0; } void bfs(int i,int j) { queue<pair<int,int>>Q; Q.push({i,j}); dist[i][j]=0; while (Q.size()) { int x,y; tie(x,y)=Q.front(); Q.pop(); if (check(x+1,y)) if (dist[x+1][y]>dist[x][y]+costy[x][y]) { dist[x+1][y]=dist[x][y]+costy[x][y]; Q.push({x+1,y}); } if (check(x,y+1)) if (dist[x][y+1]>dist[x][y]+costx[x][y]) { dist[x][y+1]=dist[x][y]+costx[x][y]; Q.push({x,y+1}); } if (check(x,y-1)) if (dist[x][y-1]>dist[x][y]+costx[x][y-1]) { dist[x][y-1]=dist[x][y]+costx[x][y-1]; Q.push({x,y-1}); } } } void changeH(int P, int Q, int W) { costx[P][Q]=W; } void changeV(int P, int Q, int W) { costy[P][Q]=W; } int escape(int V1, int V2) { for (int i=0;i<r;i++) for (int j=0;j<c;j++) dist[i][j]=1e9+10; bfs(0,V1); return dist[r-1][V2]; }

Compilation message (stderr)

grader.c: In function 'int main()':
grader.c:15:6: warning: variable 'res' set but not used [-Wunused-but-set-variable]
   15 |  int res;
      |      ^~~
#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...