# | TimeUTC-0 | Username | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
300347 | jtnydv25 | Carnival Tickets (IOI20_tickets) | C++17 | 1311 ms | 72212 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 "tickets.h"
#include<bits/stdc++.h>
using namespace std;
#define ll long long
long long find_maximum(int k, vector<vector<int>> x) {
int n = x.size();
int m = x[0].size();
vector<vector<ll>> f(n, vector<ll> (k + 1, 0));
vector<int> pluses(n);
vector<int> minuses(n);
set<pair<ll, int>> benefits;
ll mx = 0;
for(int i = 0; i < n; i++){
for(int j = 0; j < k; j++) f[i][0] -= x[i][j];
for(int r = 1; r <= k; r++){
f[i][r] = f[i][r - 1] + x[i][m - r] + x[i][k - r]; // f is concave :)
}
benefits.insert({f[i][1] - f[i][0], i});
minuses[i] = k;
mx += f[i][0];
}
for(int r = 1; r <= (n * k) / 2; r++){
auto it = *benefits.rbegin();
benefits.erase(it);
int i = it.second;
mx += it.first;
# | 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... |