Submission #235245

#TimeUsernameProblemLanguageResultExecution timeMemory
235245crossing0verWombats (IOI13_wombats)C++17
55 / 100
20063 ms59820 KiB
#include<bits/stdc++.h> #define fi first #define se second #include "wombats.h" using namespace std; int R,C,H[5000][200],V[5000][200],vis[5000][200],help,dis[5000][2000],X,Y,x,y,G[5000][200][3],tr[5000][200],val,i,j; pair<int,pair<int,int> > v; bool flag; int D[200][200]; int dx[] = {0,0,1}; int dy[] = {1,-1,0}; priority_queue<pair<int,pair<int,int > > > pq; void dijkstra() { for (i = 0; i < C; i++) { help++; pq.push ({0,{0, i}}); tr[0][i] = help; dis[0][i] = 0; while (!pq.empty()) { v = pq.top(); pq.pop(); X = v.se.fi; Y = v.se.se; if (vis[X][Y] == help) continue; val = -v.fi; vis[X][Y] = help; for (j = 0; j < 3; j++) { x = dx[j] + X; y = dy[j] + Y; if (x >= R || y < 0 || y >= C) continue; if (help != tr[x][y] || dis[x][y] > val + G[X][Y][j] ) { tr[x][y] = help; dis[x][y] = val + G[X][Y][j]; pq.push( { -dis[x][y], { x , y} } ); } } } for (j = 0; j < C; j++) D[i][j] = dis[R-1][j]; } } void init(int R1, int C1, int H1[5000][200], int V1[5000][200]) { R = R1; C = C1; for (i = 0; i < R; i++) for (j = 0; j < C; j++) { H[i][j] = H1[i][j], V[i][j] = V1[i][j]; } for (i = 0; i < R; i++) for (j = 0; j < C; j++) { G[i][j][0] = H[i][j]; if (j) G[i][j][1] = H[i][j-1]; G[i][j][2] = V[i][j]; } } void changeH(int P, int Q, int W) { G[P][Q][0] = W; G[P][Q+1][1] = W; flag = 0; } void changeV(int P, int Q, int W) { G[P][Q][2] = W; flag = 0; } int escape(int V1, int V2) { if (!flag) { flag = 1; dijkstra(); } return D[V1][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]
  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...