Submission #1039712

#TimeUsernameProblemLanguageResultExecution timeMemory
1039712DorostWefCarnival Tickets (IOI20_tickets)C++17
27 / 100
345 ms73212 KiB
#include "tickets.h" #include <bits/stdc++.h> using namespace std; #define F first #define S second const int N = 1504; int c[N]; long long find_maximum(int k, std::vector<std::vector<int>> x) { int n = x.size(); int m = x[0].size(); std::vector<std::vector<int>> answer; for (int i = 0; i < n; i++) { std::vector<int> row(m); for (int j = 0; j < m; j++) { row[j] = -1; } answer.push_back(row); } long long ans = 0; vector <pair <long long, int>> v; for (int i = 0; i < n; i++) { for (int j = 0; j < k; j++) { ans += x[i][m - j - 1]; v.push_back(make_pair (x[i][m - j - 1] + x[i][k - j - 1], i)); } } sort (v.begin(), v.end()); for (int i = 0; i < (n / 2) * k; i++) { ans -= v[i].F; c[v[i].S]++; } for (int i = 0; i < n; i++ ){ for (int j = 0; j < m; j++) { if (j < c[i]) answer[i][j] = j; else if (j >= m - (k - c[i])) { answer[i][j] = c[i] + j - (m - (k - c[i])); } else answer[i][j] = -1; } } allocate_tickets(answer); return ans; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...