# | Time | Username | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
307156 | Ruxandra985 | Carnival Tickets (IOI20_tickets) | C++14 | 780 ms | 72572 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>
#include "tickets.h"
#define DIMN 1510
#define MLD 1000000000
using namespace std;
pair <int , int> v[2 * DIMN];
long long dp[DIMN][DIMN];
int tt[DIMN][DIMN];
int f[DIMN];
long long find_maximum(int k, vector<vector<int>> x) {
int n = x.size() , i , j , pv , pw , elem;
int m = x[0].size();
long long sol = 0;
vector<vector<int>> answer;
for (i = 0; i < n; i++) {
vector<int> row;
row.resize(m , -1);
answer.push_back(row);
}
if (m == 1){
for (i = 0 ; i < n ; i++){
answer[i][0] = 0;
v[i] = make_pair(x[i][0] , i);
}
sort (v , v + n);
for (i = 0 ; i < n ; i++){
if (i < n / 2)
sol = sol - v[i].first;
else
sol = sol + v[i].first;
}
}
else if (k == 1){
/// dp[i][j] = smin daca esti la linia i si ai selectat j din stanga
tt[0][0] = 1;
for (i = 1 ; i <= n ; i++){
for (j = 0 ; j <= n / 2 && j <= i ; j++){
if (j != 0){
if (!tt[i - 1][j] && tt[i - 1][j - 1]){
dp[i][j] = dp[i - 1][j - 1] + x[i - 1][0];
tt[i][j] = -1;
}
else if (!tt[i - 1][j - 1] && tt[i - 1][j]){
dp[i][j] = dp[i - 1][j] + MLD - x[i - 1].back();
tt[i][j] = 1;
}
else if (tt[i - 1][j - 1] && tt[i - 1][j]){
if (dp[i - 1][j] + MLD - x[i - 1].back() <= dp[i - 1][j - 1] + x[i - 1][0]){
dp[i][j] = dp[i - 1][j] + MLD - x[i - 1].back();
tt[i][j] = 1;
}
else {
dp[i][j] = dp[i - 1][j - 1] + x[i - 1][0];
tt[i][j] = -1;
}
}
}
else if (tt[i - 1][j]){
dp[i][j] = dp[i - 1][j] + MLD - x[i - 1].back();
tt[i][j] = 1;
}
}
}
sol = 1LL * MLD * n / 2 - dp[n][n / 2];
i = n;
j = n / 2;
while (i){
if (tt[i][j] == -1){
answer[i - 1][0] = 0;
j--;
}
else {
answer[i - 1][m - 1] = 0;
}
i--;
}
}
allocate_tickets(answer);
return sol;
}
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... |