Submission #257666

#TimeUsernameProblemLanguageResultExecution timeMemory
257666davi_bartWombats (IOI13_wombats)C++14
55 / 100
20073 ms42664 KiB
#pragma GCC optimize("O3") #include <bits/stdc++.h> #include "wombats.h" using namespace std; typedef long long ll; int h[5000][200],v[5000][200]; int ans[5000][200][200]; int r,c; struct node{ int r,c,d,fin; bool operator<(const node &x)const { return d<x.d; } bool operator>(const node &x)const { return d>x.d; } }; void calc(){ for(int i=0;i<r;i++){ for(int j=0;j<c;j++){ for(int x=0;x<c;x++)ans[i][j][x]=-1; } } priority_queue<node,vector<node>,greater<node> >q; for(int i=0;i<c;i++)q.push({r-1,i,0,i}); while(!q.empty()){ node x=q.top(); q.pop(); if(ans[x.r][x.c][x.fin]>=0)continue; ans[x.r][x.c][x.fin]=x.d; if(x.c>0)q.push({x.r,x.c-1,x.d+h[x.r][x.c-1],x.fin}); if(x.c<c-1)q.push({x.r,x.c+1,x.d+h[x.r][x.c],x.fin}); if(x.r>0)q.push({x.r-1,x.c,x.d+v[x.r-1][x.c],x.fin}); } } void init(int R, int C, int H[5000][200], int V[5000][200]) { 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]; } } r=R; c=C; if(c<=20)calc(); } void changeH(int P, int Q, int W) { h[P][Q]=W; if(c<=20)calc(); } void changeV(int P, int Q, int W) { v[P][Q]=W; if(c<=20)calc(); } bool vis[5000][200]; int escape(int V1, int V2) { if(c<=20)return ans[0][V1][V2]; for(int i=0;i<r;i++){ for(int j=0;j<c;j++){ vis[i][j]=0; } } priority_queue<node,vector<node>,greater<node> >q; q.push({r-1,V2,0,0}); while(!q.empty()){ node x=q.top(); q.pop(); if(vis[x.r][x.c])continue; vis[x.r][x.c]=1; if(x.r==0 && x.c==V1)return x.d; if(x.c>0)q.push({x.r,x.c-1,x.d+h[x.r][x.c-1],x.fin}); if(x.c<c-1)q.push({x.r,x.c+1,x.d+h[x.r][x.c],x.fin}); if(x.r>0)q.push({x.r-1,x.c,x.d+v[x.r-1][x.c],x.fin}); } }

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:77: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...