Submission #1208044

#TimeUsernameProblemLanguageResultExecution timeMemory
1208044shmaxCarnival Tickets (IOI20_tickets)C++17
100 / 100
500 ms54476 KiB
#include "tickets.h" #include <bits/stdc++.h> using namespace std; template<typename T> using vec = vector<T>; #define i32 int32_t #define int long long #define len(x) ((int)(x).size()) long long find_maximum(i32 k, std::vector<std::vector<i32>> x) { int n = x.size(); int m = x[0].size(); vec<vec<i32>> d(n, vec<i32>(m, -1)); // allocate_tickets(vec<vec<i32>>(n, vec<i32>(m, 0))); int S = 0; set<pair<int, int>> deltas; vec<int> ptr(n, 0); for (int i = 0; i < n; i++) { for (int j = m - k; j < m; j++) { S += x[i][j]; } deltas.emplace(-x[i][m - k + ptr[i]] - x[i][ptr[i]], i); // deltas.emplace(-x[i].back() - x[i][0], i); } for (int t = 0; t < n * k / 2; t++) { auto [xy, i] = *deltas.rbegin(); deltas.erase(prev(deltas.end())); S += xy; d[i][m - k + ptr[i]] = -1; ptr[i]++; if (ptr[i] < k) { deltas.emplace(-x[i][m - k + ptr[i]] - x[i][ptr[i]], i); } } // vec<pair<int, int>> mins; // vec<pair<int, int>> maxs; // for (int i = 0; i < n; i++) { // for (int j = 0; j < m; j++) { // if (d[i][j] == 1) { // mins.emplace_back(i, j); // } else if (d[i][j] == -1) { // maxs.emplace_back(i, j); // } // } // } vec<int> bd(n, 0); for (int t = 0; t < k; t++) { vec<int> ids(n); iota(ids.begin(), ids.end(), 0); sort(ids.rbegin(), ids.rend(), [&](int i, int j) { return ptr[i] < ptr[j]; }); for (int i = 0; i < n / 2; i++) { d[ids[i]][ptr[ids[i]]-1] = t; ptr[ids[i]]--; } for (int i = n / 2; i < n; i++) { d[ids[i]][m - 1 - bd[ids[i]]] = t; bd[ids[i]]++; } } allocate_tickets(d); return S; }
#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...