Submission #627681

# Submission time Handle Problem Language Result Execution time Memory
627681 2022-08-12T18:30:17 Z tutis Catfish Farm (IOI22_fish) C++17
14 / 100
1000 ms 2097152 KB
#include "fish.h"

#include <bits/stdc++.h>
using namespace std;
using ll = long long;
long long max_weights(int N, int M, std::vector<int> X, std::vector<int> Y,
                      std::vector<int> W) {
    vector<pair<int, ll>>P[N];
    for (int i = 0; i < M; i++)
        P[X[i]].push_back({Y[i], W[i]});
    for (int i = 0; i < N; i++)
        sort(P[i].begin(), P[i].end());
    for (int i = 0; i < N; i++)
    {
        P[i].push_back({N, 0});
        for (int j = 1; j < (int)P[i].size(); j++)
            P[i][j].second += P[i][j - 1].second;
    }
    int ret = 0;
    ll dp[N];
    ll u[N][N];
    ll d[N][N];
    auto get = [&](int x, int y)->ll
    {
        auto it = lower_bound(P[x].begin(), P[x].end(), make_pair(y + 1, -1ll));
        if (it == P[x].begin())
            return 0;
        it--;
        return it->second;
    };
    for (int x = 0; x < N; x++)
    {
        dp[x] = 0;
        for (int y = 0; y < N; y++)
            u[x][y] = d[x][y] = 0;
        ll sum = 0;
        int i = 0;
        if (x == 0)
            continue;
        for (int y = 0; y < N; y++)
        {
            u[x][y] = dp[x - 1];
            u[x][y] = max(u[x][y], get(x - 1, y) + (x - 2 >= 0 ? dp[x - 2] : 0ll));
            for (int y1 = 0; y1 <= y; y1++)
                u[x][y] = max(u[x][y], u[x - 1][y1] + get(x - 1, y) - get(x - 1, y1));
        }
        d[x][N - 1] = u[x][N - 1];
        for (int y = N - 1; y >= 0; y--)
        {
            for (int y1 = y; y1 < N; y1++)
                d[x][y] = max(d[x][y], d[x - 1][y1] + get(x, y1) - get(x, y));
        }
        dp[x] = dp[x - 1];
        for (int y = 0; y < N; y++)
        {
            dp[x] = max(dp[x], get(x, y) + u[x - 1][y]);
            dp[x] = max(dp[x], get(x, y) + d[x - 1][y]);
            dp[x] = max(dp[x], u[x][y]);
            dp[x] = max(dp[x], d[x][y]);
        }
    }
    return dp[N - 1];
}

Compilation message

fish.cpp: In function 'long long int max_weights(int, int, std::vector<int>, std::vector<int>, std::vector<int>)':
fish.cpp:36:12: warning: unused variable 'sum' [-Wunused-variable]
   36 |         ll sum = 0;
      |            ^~~
fish.cpp:37:13: warning: unused variable 'i' [-Wunused-variable]
   37 |         int i = 0;
      |             ^
fish.cpp:19:9: warning: unused variable 'ret' [-Wunused-variable]
   19 |     int ret = 0;
      |         ^~~
# Verdict Execution time Memory Grader output
1 Runtime error 796 ms 2097152 KB Execution killed with signal 9
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 0 ms 212 KB Output is correct
2 Runtime error 873 ms 2097152 KB Execution killed with signal 9
3 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Runtime error 758 ms 2097152 KB Execution killed with signal 9
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 0 ms 212 KB Output is correct
2 Correct 0 ms 212 KB Output is correct
3 Correct 0 ms 212 KB Output is correct
4 Correct 1 ms 212 KB Output is correct
5 Correct 1 ms 212 KB Output is correct
6 Correct 0 ms 212 KB Output is correct
7 Correct 0 ms 212 KB Output is correct
8 Correct 0 ms 296 KB Output is correct
9 Correct 29 ms 704 KB Output is correct
10 Correct 237 ms 1896 KB Output is correct
11 Correct 29 ms 596 KB Output is correct
12 Correct 217 ms 1788 KB Output is correct
13 Correct 3 ms 340 KB Output is correct
14 Correct 193 ms 1768 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 0 ms 212 KB Output is correct
2 Correct 0 ms 212 KB Output is correct
3 Correct 0 ms 212 KB Output is correct
4 Correct 1 ms 212 KB Output is correct
5 Correct 1 ms 212 KB Output is correct
6 Correct 0 ms 212 KB Output is correct
7 Correct 0 ms 212 KB Output is correct
8 Correct 0 ms 296 KB Output is correct
9 Correct 29 ms 704 KB Output is correct
10 Correct 237 ms 1896 KB Output is correct
11 Correct 29 ms 596 KB Output is correct
12 Correct 217 ms 1788 KB Output is correct
13 Correct 3 ms 340 KB Output is correct
14 Correct 193 ms 1768 KB Output is correct
15 Correct 189 ms 1728 KB Output is correct
16 Correct 14 ms 536 KB Output is correct
17 Correct 865 ms 4196 KB Output is correct
18 Correct 784 ms 4808 KB Output is correct
19 Correct 762 ms 4784 KB Output is correct
20 Correct 791 ms 4668 KB Output is correct
21 Correct 730 ms 4660 KB Output is correct
22 Execution timed out 1061 ms 7100 KB Time limit exceeded
23 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 0 ms 212 KB Output is correct
2 Correct 0 ms 212 KB Output is correct
3 Correct 0 ms 212 KB Output is correct
4 Correct 1 ms 212 KB Output is correct
5 Correct 1 ms 212 KB Output is correct
6 Correct 0 ms 212 KB Output is correct
7 Correct 0 ms 212 KB Output is correct
8 Correct 0 ms 296 KB Output is correct
9 Correct 29 ms 704 KB Output is correct
10 Correct 237 ms 1896 KB Output is correct
11 Correct 29 ms 596 KB Output is correct
12 Correct 217 ms 1788 KB Output is correct
13 Correct 3 ms 340 KB Output is correct
14 Correct 193 ms 1768 KB Output is correct
15 Correct 189 ms 1728 KB Output is correct
16 Correct 14 ms 536 KB Output is correct
17 Correct 865 ms 4196 KB Output is correct
18 Correct 784 ms 4808 KB Output is correct
19 Correct 762 ms 4784 KB Output is correct
20 Correct 791 ms 4668 KB Output is correct
21 Correct 730 ms 4660 KB Output is correct
22 Execution timed out 1061 ms 7100 KB Time limit exceeded
23 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Runtime error 758 ms 2097152 KB Execution killed with signal 9
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Runtime error 796 ms 2097152 KB Execution killed with signal 9
2 Halted 0 ms 0 KB -