# | TimeUTC-0 | Username | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
1073310 | mc061 | Carnival Tickets (IOI20_tickets) | C++17 | 3090 ms | 2097152 KiB |
This submission is migrated from previous version of oj.uz, which used different machine for grading. This submission may have different result if resubmitted.
#include <bits/stdc++.h>
using namespace std;
#pragma GCC optimize("O3,unroll-loops")
const int mxN = 1.5e3+6;
bool have_c[mxN][mxN]={};
void allocate_tickets(std::vector<std::vector<int>> _x);
long long find_maximum(int k, std::vector<std::vector<int>> d) {
srand(time(0));
const int n = d.size(); //colors
const int m = d[0].size(); //tickets per color
vector<vector<int64_t>> dp(n+1, vector<int64_t>(n*k/2+1, -1e18));
vector<vector<int64_t>> prev(n+1, vector<int64_t>(n*k/2+1));
dp[0][0] = 0;
vector<vector<int64_t>> val(n, vector<int64_t>(m+1, 0)); //what value gain by taking j with minus
for (int i = 0; i < n; ++i) {
int64_t res = 0;
for (int j = m-1; j >= m-k; --j) {
res += d[i][j];
}
int ptr = m-k;
val[i][0] = res;
for (int j = 1; j <= k; ++j) {
res -= d[i][ptr];
res -= d[i][j-1];
val[i][j] = res;
ptr++;
}
Compilation message (stderr)
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |