Submission #962281

# Submission time Handle Problem Language Result Execution time Memory
962281 2024-04-13T10:01:11 Z simona1230 Wombats (IOI13_wombats) C++17
37 / 100
648 ms 96776 KB
#include <bits/stdc++.h>
#include "wombats.h"
using namespace std;

int r,c,h[5001][201],v[5001][201];
int dp[201][201][201];
bool subt2;
bool subt3;
int tot;
void init(int R,int C,int H[5000][200],int V[5000][200])
{
    r=R;
    c=C;
    for(int i=0; i<R; i++)
    {
        for(int j=0; j<C; j++)
        {
            h[i][j]=H[i][j];
            v[i][j]=V[i][j];
            tot+=h[i][j];
            tot+=v[i][j];
        }
    }
    if(r<=100&&c<=100)
        subt3=1;
    else if(c!=1)subt2=1;

    if(subt2)
    {


        //cout<<r<<" "<<c<<endl;
        for(int i=0; i<r; i++)
        {
            for(int j=0; j<c; j++)
            {
                for(int k=0; k<c; k++)
                {
                    dp[i][j][k]=1e9;
                }
                dp[0][j][j]=0;
            }
        }

        for(int k=0; k<c; k++)
            for(int i=0; i<r; i++)
            {
                for(int j=c-1; j>=0; j--)
                {
                    //cout<<dp[i][j][k]<<endl;
                    if(i>0)dp[i][j][k]=min(dp[i][j][k],dp[i-1][j][k]+v[i-1][j]);
                    if(j<c-1)dp[i][j][k]=min(dp[i][j][k],dp[i][j+1][k]+h[i][j]);
                }
                for(int j=0; j<c; j++)
                {
                    //cout<<dp[i][j][k]<<endl;
                    if(i>0)dp[i][j][k]=min(dp[i][j][k],dp[i-1][j][k]+v[i-1][j]);
                    if(j>0)dp[i][j][k]=min(dp[i][j][k],dp[i][j-1][k]+h[i][j-1]);
                    //cout<<i<<" "<<j<<" "<<k<<" "<<dp[i][j][k]<<endl;
                }
            }
    }
}

void changeH(int x,int y,int w)
{
    tot-=h[x][y];
    h[x][y]=w;
    tot+=w;
}

void changeV(int x,int y,int w)
{
    tot-=v[x][y];
    v[x][y]=w;
    tot+=w;
}

int escape(int x,int y)
{
    if(c==1)return tot;
    if(subt2)return dp[r-1][y][x];
    if(subt3)
    {
        //cout<<x<<" --- "<<y<<endl;
        int k=x;
        for(int i=0; i<r; i++)
        {
            for(int j=0; j<c; j++)
            {
                dp[i][j][k]=1e9;
            }
        }
        dp[0][k][k]=0;
        for(int i=0; i<r; i++)
        {
            for(int j=c-1; j>=0; j--)
            {
                //cout<<dp[i][j][k]<<endl;
                if(i>0)dp[i][j][k]=min(dp[i][j][k],dp[i-1][j][k]+v[i-1][j]);
                if(j<c-1)dp[i][j][k]=min(dp[i][j][k],dp[i][j+1][k]+h[i][j]);
            }
            for(int j=0; j<c; j++)
            {
                //cout<<dp[i][j][k]<<endl;
                if(i>0)dp[i][j][k]=min(dp[i][j][k],dp[i-1][j][k]+v[i-1][j]);
                if(j>0)dp[i][j][k]=min(dp[i][j][k],dp[i][j-1][k]+h[i][j-1]);
                //cout<<i<<" "<<j<<" "<<k<<" "<<dp[i][j][k]<<endl;
            }
        }
        return dp[r-1][y][x];
    }
}

Compilation message

grader.c: In function 'int main()':
grader.c:15:6: warning: variable 'res' set but not used [-Wunused-but-set-variable]
   15 |  int res;
      |      ^~~
wombats.cpp: In function 'int escape(int, int)':
wombats.cpp:113:1: warning: control reaches end of non-void function [-Wreturn-type]
  113 | }
      | ^
# Verdict Execution time Memory Grader output
1 Correct 3 ms 12892 KB Output is correct
2 Correct 3 ms 13048 KB Output is correct
3 Correct 65 ms 14464 KB Output is correct
4 Correct 2 ms 12892 KB Output is correct
5 Correct 3 ms 12888 KB Output is correct
6 Correct 1 ms 4444 KB Output is correct
7 Correct 1 ms 4444 KB Output is correct
8 Correct 1 ms 4444 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 1 ms 4444 KB Output is correct
2 Correct 1 ms 4444 KB Output is correct
3 Correct 1 ms 4440 KB Output is correct
4 Correct 3 ms 10588 KB Output is correct
5 Correct 3 ms 10588 KB Output is correct
6 Correct 3 ms 10588 KB Output is correct
7 Correct 4 ms 10588 KB Output is correct
8 Correct 3 ms 10588 KB Output is correct
9 Correct 3 ms 10800 KB Output is correct
10 Correct 3 ms 10588 KB Output is correct
11 Correct 648 ms 11696 KB Output is correct
12 Correct 3 ms 10740 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 17 ms 23420 KB Output is correct
2 Correct 15 ms 23644 KB Output is correct
3 Correct 14 ms 23388 KB Output is correct
4 Correct 13 ms 23388 KB Output is correct
5 Correct 14 ms 23424 KB Output is correct
6 Correct 1 ms 4444 KB Output is correct
7 Correct 1 ms 4444 KB Output is correct
8 Correct 1 ms 4444 KB Output is correct
9 Correct 16 ms 23304 KB Output is correct
10 Correct 1 ms 6492 KB Output is correct
# Verdict Execution time Memory Grader output
1 Runtime error 44 ms 96776 KB Execution killed with signal 11
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 13 ms 23388 KB Output is correct
2 Correct 14 ms 23384 KB Output is correct
3 Correct 17 ms 23388 KB Output is correct
4 Correct 13 ms 23268 KB Output is correct
5 Correct 14 ms 23388 KB Output is correct
6 Runtime error 46 ms 96576 KB Execution killed with signal 11
7 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 14 ms 23388 KB Output is correct
2 Correct 14 ms 23424 KB Output is correct
3 Correct 17 ms 23428 KB Output is correct
4 Correct 15 ms 23424 KB Output is correct
5 Correct 14 ms 23420 KB Output is correct
6 Runtime error 46 ms 96596 KB Execution killed with signal 11
7 Halted 0 ms 0 KB -