Submission #29738

#TimeUsernameProblemLanguageResultExecution timeMemory
29738kavunWombats (IOI13_wombats)C++14
0 / 100
20000 ms19680 KiB
#include "wombats.h"
#include <bits/stdc++.h>

using namespace std;
typedef pair<int,int> ii;
typedef pair<int,ii> iii;
priority_queue <iii> Q;
int h[5000][200],v[5000][200];
int n,m;

void init(int R, int C, int H[5000][200], int V[5000][200]) {
  n = R;
  m = C;
  for(int i = 0; i< 5000; i++)
    for(int j = 0; j < 200; j++)
      {
	h[i][j] = H[i][j];
	v[i][j] = V[i][j];
      }
}

void changeH(int P, int Q, int W) {
    /* ... */
}

void changeV(int P, int Q, int W) {
    /* ... */
}

int escape(int V1, int V2) {

  int dist[5010][110];
  for(int i = 0; i < 5010; i++)
    for(int j = 0;j < 110; j++)
      dist[i][j] = 1e9;

  dist[0][V1] = 0;
  Q.push(iii(0,ii(0,V1)));
  
  while(!Q.empty())
    {
      iii pr = Q.top();
      Q.pop();
      int d = -pr.first;
      int x = pr.second.first;
      int y = pr.second.second;
      if(x + 1 < n)
	{
	  if(dist[x][y] + v[x][y] < dist[x+1][y])
	    {
	      dist[x+1][y] =  dist[x][y] + v[x][y];
	      Q.push(iii(-dist[x+1][y],ii(x+1,y)));
	    }
	}
      if(y + 1 < m)
	{
	  if(dist[x][y] + h[x][y] < dist[x][y+1])
	    {
	      dist[x][y+1] = dist[x][y] + h[x][y];
	      Q.push(iii(-dist[x][y+1],ii(x,y+1)));
	    }
	}
      if(y - 1 >= 0)
	{
	  if(dist[x][y] + h[x][y-1] < dist[x][y-1])
	    {
	      dist[x][y-1] = dist[x][y] + h[x][y-1];
	      Q.push(iii(-dist[x][y-1],ii(x,y-1)));
	    }
	}
    }
  return dist[n-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]
  int res;
      ^
wombats.cpp: In function 'int escape(int, int)':
wombats.cpp:44:11: warning: unused variable 'd' [-Wunused-variable]
       int d = -pr.first;
           ^
#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...