Submission #257674

# Submission time Handle Problem Language Result Execution time Memory
257674 2020-08-04T14:23:03 Z davi_bart Wombats (IOI13_wombats) C++14
55 / 100
20000 ms 42360 KB
#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;
int mi=70;
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<=mi)calc();
}

void changeH(int P, int Q, int W) {
  h[P][Q]=W;
  if(c<=mi)calc();
}

void changeV(int P, int Q, int W) {
  v[P][Q]=W;
  if(c<=mi)calc();
}
bool vis[5000][200];
int escape(int V1, int V2) {
  if(c<=mi)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

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:78:1: warning: control reaches end of non-void function [-Wreturn-type]
 }
 ^
# Verdict Execution time Memory Grader output
1 Correct 213 ms 33536 KB Output is correct
2 Correct 211 ms 33640 KB Output is correct
3 Correct 292 ms 35192 KB Output is correct
4 Correct 211 ms 33536 KB Output is correct
5 Correct 216 ms 33536 KB Output is correct
6 Correct 5 ms 8192 KB Output is correct
7 Correct 5 ms 8192 KB Output is correct
8 Correct 6 ms 8192 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 5 ms 8192 KB Output is correct
2 Correct 6 ms 8192 KB Output is correct
3 Correct 6 ms 8192 KB Output is correct
4 Correct 9 ms 8704 KB Output is correct
5 Correct 7 ms 8576 KB Output is correct
6 Correct 8 ms 8576 KB Output is correct
7 Correct 8 ms 8832 KB Output is correct
8 Correct 10 ms 8576 KB Output is correct
9 Correct 11 ms 8704 KB Output is correct
10 Correct 9 ms 8576 KB Output is correct
11 Correct 98 ms 9848 KB Output is correct
12 Correct 9 ms 8576 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 269 ms 8440 KB Output is correct
2 Correct 212 ms 8820 KB Output is correct
3 Correct 272 ms 8440 KB Output is correct
4 Correct 277 ms 8448 KB Output is correct
5 Correct 264 ms 8440 KB Output is correct
6 Correct 6 ms 8192 KB Output is correct
7 Correct 6 ms 8192 KB Output is correct
8 Correct 6 ms 8192 KB Output is correct
9 Correct 244 ms 8448 KB Output is correct
10 Correct 6 ms 8192 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 1437 ms 41424 KB Output is correct
2 Correct 1840 ms 41340 KB Output is correct
3 Correct 1370 ms 41288 KB Output is correct
4 Correct 1433 ms 42144 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 268 ms 8320 KB Output is correct
2 Correct 212 ms 9072 KB Output is correct
3 Correct 276 ms 8440 KB Output is correct
4 Correct 277 ms 8448 KB Output is correct
5 Correct 263 ms 8440 KB Output is correct
6 Correct 2071 ms 41336 KB Output is correct
7 Correct 2004 ms 41336 KB Output is correct
8 Correct 1414 ms 41216 KB Output is correct
9 Correct 1383 ms 42360 KB Output is correct
10 Correct 211 ms 33536 KB Output is correct
11 Correct 213 ms 33536 KB Output is correct
12 Correct 323 ms 35180 KB Output is correct
13 Correct 209 ms 33536 KB Output is correct
14 Correct 210 ms 33528 KB Output is correct
15 Correct 6 ms 8192 KB Output is correct
16 Correct 5 ms 8192 KB Output is correct
17 Correct 5 ms 8192 KB Output is correct
18 Correct 8 ms 8704 KB Output is correct
19 Correct 7 ms 8576 KB Output is correct
20 Correct 10 ms 8576 KB Output is correct
21 Correct 11 ms 8832 KB Output is correct
22 Correct 8 ms 8576 KB Output is correct
23 Correct 8 ms 8704 KB Output is correct
24 Correct 11 ms 8576 KB Output is correct
25 Correct 97 ms 9720 KB Output is correct
26 Correct 9 ms 8576 KB Output is correct
27 Correct 254 ms 8508 KB Output is correct
28 Execution timed out 20056 ms 17144 KB Time limit exceeded
29 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 271 ms 8436 KB Output is correct
2 Correct 212 ms 8804 KB Output is correct
3 Correct 280 ms 8320 KB Output is correct
4 Correct 273 ms 8440 KB Output is correct
5 Correct 264 ms 8440 KB Output is correct
6 Correct 1475 ms 41340 KB Output is correct
7 Correct 1869 ms 41328 KB Output is correct
8 Correct 1519 ms 41296 KB Output is correct
9 Correct 1561 ms 42016 KB Output is correct
10 Correct 215 ms 33656 KB Output is correct
11 Correct 216 ms 33656 KB Output is correct
12 Correct 303 ms 35192 KB Output is correct
13 Correct 223 ms 33656 KB Output is correct
14 Correct 217 ms 33536 KB Output is correct
15 Correct 1274 ms 17184 KB Output is correct
16 Execution timed out 20086 ms 17016 KB Time limit exceeded
17 Halted 0 ms 0 KB -