Submission #858463

# Submission time Handle Problem Language Result Execution time Memory
858463 2023-10-08T14:00:17 Z LucaIlie Catfish Farm (IOI22_fish) C++17
35 / 100
1000 ms 158480 KB
#include "fish.h"
#include <bits/stdc++.h>

using namespace std;

const int MAX_N = 3002;
const int MAX_M = 3e5;
const long long INF = 1e18;
int costCell[MAX_N][MAX_N];
long long dp[MAX_N][MAX_N], dpLower[MAX_N][MAX_N], spX[MAX_N][MAX_N];

long long max_weights( int n, int m, vector <int> X, vector <int> Y, vector <int> W ) {

    for ( int i = 0; i < m; i++ ) {
        X[i]++;
        Y[i]++;
        costCell[X[i]][Y[i]] = W[i];
    }

    for ( int x = 1; x <= n; x++ ) {
        for ( int y = 1; y <= n; y++ )
            spX[x][y] = spX[x][y - 1] + costCell[x][y];
    }

    for ( int crtY = 1; crtY <= n; crtY++ )
        dp[0][crtY] = dpLower[0][crtY] = -INF;
    dp[0][0] = dpLower[0][0] = 0;
    for ( int x = 1; x <= n + 1; x++ ) {
        for ( int crtY = 0; crtY <= n; crtY++ ) {
            dp[x][crtY] = dpLower[x][crtY] = -INF;
            for ( int prevY = 0; prevY <= crtY; prevY++ ) {
                dpLower[x][crtY] = max( dpLower[x][crtY], dpLower[x - 1][prevY] + spX[x - 1][crtY] - spX[x - 1][prevY] );
                if ( x >= 2 )
                    dpLower[x][crtY] = max( dpLower[x][crtY], dp[x - 2][prevY] + spX[x - 1][crtY] );

                dp[x][crtY] = max( dp[x][crtY], dpLower[x - 1][prevY] + spX[x - 1][crtY] - spX[x - 1][prevY] );
                if ( x >= 2 )
                    dp[x][crtY] = max( dp[x][crtY], dp[x - 2][prevY] + spX[x - 1][crtY] );
            }
            for ( int prevY = crtY; prevY <= n; prevY++ ) {
                if ( x >= 2 )
                    dpLower[x][crtY] = max( dpLower[x][crtY], dp[x - 2][prevY] + spX[x - 1][prevY] );

                dp[x][crtY] = max( dp[x][crtY], dp[x - 1][prevY] + spX[x][prevY] - spX[x][crtY] );
                if ( x >= 2 )
                    dp[x][crtY] = max( dp[x][crtY], dp[x - 2][prevY] + spX[x - 1][prevY] );
            }
        }
    }

    return dp[n + 1][0];
}
# Verdict Execution time Memory Grader output
1 Runtime error 600 ms 154508 KB Execution killed with signal 11
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 1 ms 6488 KB Output is correct
2 Runtime error 636 ms 158480 KB Execution killed with signal 11
3 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Runtime error 637 ms 150620 KB Execution killed with signal 11
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 1 ms 6492 KB Output is correct
2 Correct 1 ms 6492 KB Output is correct
3 Correct 1 ms 6492 KB Output is correct
4 Correct 1 ms 6492 KB Output is correct
5 Correct 1 ms 6492 KB Output is correct
6 Correct 1 ms 6492 KB Output is correct
7 Correct 1 ms 6492 KB Output is correct
8 Correct 1 ms 6492 KB Output is correct
9 Correct 10 ms 15452 KB Output is correct
10 Correct 66 ms 24968 KB Output is correct
11 Correct 10 ms 15452 KB Output is correct
12 Correct 65 ms 24956 KB Output is correct
13 Correct 3 ms 10844 KB Output is correct
14 Correct 74 ms 24916 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 1 ms 6492 KB Output is correct
2 Correct 1 ms 6492 KB Output is correct
3 Correct 1 ms 6492 KB Output is correct
4 Correct 1 ms 6492 KB Output is correct
5 Correct 1 ms 6492 KB Output is correct
6 Correct 1 ms 6492 KB Output is correct
7 Correct 1 ms 6492 KB Output is correct
8 Correct 1 ms 6492 KB Output is correct
9 Correct 10 ms 15452 KB Output is correct
10 Correct 66 ms 24968 KB Output is correct
11 Correct 10 ms 15452 KB Output is correct
12 Correct 65 ms 24956 KB Output is correct
13 Correct 3 ms 10844 KB Output is correct
14 Correct 74 ms 24916 KB Output is correct
15 Correct 70 ms 24912 KB Output is correct
16 Correct 3 ms 11100 KB Output is correct
17 Correct 90 ms 26708 KB Output is correct
18 Correct 82 ms 26960 KB Output is correct
19 Correct 79 ms 26728 KB Output is correct
20 Correct 76 ms 26704 KB Output is correct
21 Correct 76 ms 26700 KB Output is correct
22 Correct 86 ms 28524 KB Output is correct
23 Correct 69 ms 25228 KB Output is correct
24 Correct 80 ms 26108 KB Output is correct
25 Correct 66 ms 24916 KB Output is correct
26 Correct 68 ms 25252 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 1 ms 6492 KB Output is correct
2 Correct 1 ms 6492 KB Output is correct
3 Correct 1 ms 6492 KB Output is correct
4 Correct 1 ms 6492 KB Output is correct
5 Correct 1 ms 6492 KB Output is correct
6 Correct 1 ms 6492 KB Output is correct
7 Correct 1 ms 6492 KB Output is correct
8 Correct 1 ms 6492 KB Output is correct
9 Correct 10 ms 15452 KB Output is correct
10 Correct 66 ms 24968 KB Output is correct
11 Correct 10 ms 15452 KB Output is correct
12 Correct 65 ms 24956 KB Output is correct
13 Correct 3 ms 10844 KB Output is correct
14 Correct 74 ms 24916 KB Output is correct
15 Correct 70 ms 24912 KB Output is correct
16 Correct 3 ms 11100 KB Output is correct
17 Correct 90 ms 26708 KB Output is correct
18 Correct 82 ms 26960 KB Output is correct
19 Correct 79 ms 26728 KB Output is correct
20 Correct 76 ms 26704 KB Output is correct
21 Correct 76 ms 26700 KB Output is correct
22 Correct 86 ms 28524 KB Output is correct
23 Correct 69 ms 25228 KB Output is correct
24 Correct 80 ms 26108 KB Output is correct
25 Correct 66 ms 24916 KB Output is correct
26 Correct 68 ms 25252 KB Output is correct
27 Execution timed out 1063 ms 111648 KB Time limit exceeded
28 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Runtime error 637 ms 150620 KB Execution killed with signal 11
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Runtime error 600 ms 154508 KB Execution killed with signal 11
2 Halted 0 ms 0 KB -