Submission #1204928

#TimeUsernameProblemLanguageResultExecution timeMemory
1204928banganCarnival Tickets (IOI20_tickets)C++20
27 / 100
329 ms52788 KiB
#include "tickets.h" #include <vector> #include <bits/stdc++.h> using i64 = long long; long long find_maximum(int k, std::vector<std::vector<int>> x) { int n = x.size(); int m = x[0].size(); i64 S = 0; std::vector<int> l(n, 0), r(n, m - 1); std::vector ans(n, std::vector<int>(m, -1)); for (int round = 0; round < k; round++) { for (int i = 0; i < n; i++) { ans[i][l[i]] = round; S -= x[i][l[i]++]; } std::vector<int> ord(n); iota(ord.begin(), ord.end(), 0); std::sort(ord.begin(), ord.end(), [&](int i, int j) { return x[i][l[i] - 1] + x[i][r[i]] > x[j][l[j] - 1] + x[j][r[j]]; }); ord.resize(n / 2); for (int i : ord) { S += x[i][--l[i]] + x[i][r[i]]; ans[i][l[i]] = -1; ans[i][r[i]--] = round; } } allocate_tickets(ans); 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...