Submission #964211

# Submission time Handle Problem Language Result Execution time Memory
964211 2024-04-16T12:21:29 Z Amr Wombats (IOI13_wombats) C++17
0 / 100
160 ms 24020 KB
#include "wombats.h"
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
#define sz size()
#define F first
#define S second
#define all(x) (x).begin(), (x).end()
int rows[5000][200], cols[5000][200],pre[5001][201],ans[5001][201];
int r,c;
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-1; j++) rows[i][j] = H[i][j];
    }
    for(int i = 0; i < c; i++)
    {
        for(int j = 0; j < r-1; j++)
        {
            cols[j][i] = V[j][i];
        }
    }
}

void changeH(int P, int Q, int W) {
    rows[P][Q] = W;
}

void changeV(int P, int Q, int W) {
    cols[P][Q] = W;
}

int escape(int V1, int V2) {
    for(int i = 0; i < r; i++)
    {
        for(int j = 0; j <  c; j++) ans[i][j] = 0;
    }
    for(int i = 0; i < r; i++)
    {
        for(int j = 1; j < c; j++)
        {
            pre[i][j] = pre[i][j-1]+rows[i][j-1];

        }

    }
    for(int i = 0; i < c; i++)
    {
        if(i==V1) ans[0][V1] = 0;
        else if(i<V1) ans[0][i] = pre[0][V1]-pre[0][i];
        else ans[0][i] = pre[0][i]-pre[0][V1];
      //  cout << ans[0][i] << " ";
    }
    //cout << endl;
    for(int i = 1; i < r; i++)
    {
        for(int j = 0; j < c; j++)
        {
            ans[i][j] = 1e18;
            for(int k = 0; k < c; k++)
            {
                if(k==j) ans[i][j] = min(ans[i][j],ans[i-1][k]+cols[i-1][k]);
                else if(k<j) ans[i][j] = min(ans[i][j],ans[i-1][k]+cols[i-1][k]+pre[i][j]-pre[i][k]);
                else ans[i][j] = min(ans[i][j],ans[i-1][k]+cols[i-1][k]+pre[i][k]-pre[i][j]);
            }
        }
    }
   //for(int i = 0; i < r; i++) {for(int j = 0; j < c; j++) cout << ans[i][j] << " "; cout << endl;}
    int best = 1e9;
    for(int i = 0; i < c-1 ;i++)
    {
        if(i==V2) best = min(best,ans[r-1][i]);
        else if(i<V2) best = min(best,ans[r-1][i] +  pre[r-1][V2]-pre[r-1][i]);
        else best  = min(best,ans[r-1][i]+pre[r-1][i]-pre[r-1][V2]);
    }
    return best;
}

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:60:25: warning: overflow in conversion from 'double' to 'int' changes value from '1.0e+18' to '2147483647' [-Woverflow]
   60 |             ans[i][j] = 1e18;
      |                         ^~~~
# Verdict Execution time Memory Grader output
1 Incorrect 25 ms 16984 KB Output isn't correct
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Incorrect 1 ms 4444 KB Output isn't correct
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Incorrect 160 ms 8872 KB Output isn't correct
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Incorrect 95 ms 24020 KB Output isn't correct
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Incorrect 141 ms 8792 KB Output isn't correct
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Incorrect 143 ms 8868 KB Output isn't correct
2 Halted 0 ms 0 KB -