Submission #823083

#TimeUsernameProblemLanguageResultExecution timeMemory
823083fatemetmhr카니발 티켓 (IOI20_tickets)C++17
27 / 100
393 ms54096 KiB
// :)^2 #include "tickets.h" #include <bits/stdc++.h> using namespace std; #define all(x) x.begin(), x.end() #define fi first #define se second #define mp make_pair #define pb push_back typedef long long ll; const int maxn5 = 2e3 + 10; pair <ll, int> per[maxn5]; int ptl[maxn5], ptr[maxn5]; vector <int> req[maxn5][2]; 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>> ret; for (int i = 0; i < n; i++) { ptl[i] = 0; ptr[i] = m - 1; vector <int> row(m); fill(all(row), -1); ret.push_back(row); } ll ans = 0; int num = 0; while(k--){ for(int i = 0; i < n; i++) per[i] = {ll(x[i][ptl[i]]) + x[i][ptr[i]], i}; sort(per, per + n); for(int i = 0; i < n / 2; i++){ int v = per[i].se; ans -= x[v][ptl[v]]; ret[v][ptl[v]] = num; ptl[v]++; } for(int i = n / 2; i < n; i++){ int v = per[i].se; ans += x[v][ptr[v]]; ret[v][ptr[v]] = num; ptr[v]--; } num++; } allocate_tickets(ret); 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...