Submission #1230669

#TimeUsernameProblemLanguageResultExecution timeMemory
1230669PlayVoltzCarnival Tickets (IOI20_tickets)C++20
11 / 100
1 ms840 KiB
#include "tickets.h" #include <bits/stdc++.h> using namespace std; #define pii pair<int, int> #define mp make_pair #define pb push_back #define fi first #define se second struct trio{ int x, i, j; }; bool custom(trio a, trio b){ return a.x<b.x; } long long find_maximum(int k, vector<vector<int> > x){ int n=x.size(), m=x[0].size(); long long res=0; vector<int> p(n, 0); vector<vector<int> > ans(n, vector<int>(m, -1)), ord(k); vector<trio> vect; for (int i=0; i<n; ++i)for (int j=0; j<m; ++j)vect.pb({x[i][j], i, j}); sort(vect.begin(), vect.end(), custom); for (int i=0; i<n*m/2; ++i){ if (p[vect[i].i]<k)ans[vect[i].i][vect[i].j]=p[vect[i].i], ++p[vect[i].i]; if (p[vect[n*m-i-1].i]<k)ans[vect[n*m-i-1].i][vect[n*m-i-1].j]=p[vect[n*m-i-1].i], ++p[vect[n*m-i-1].i]; } for (int i=0; i<n; ++i)for (int j=0; j<k; ++j)ord[ans[i][j]].pb(x[i][j]); for (int i=0; i<k; ++i){ sort(ord[i].begin(), ord[i].end()); for (auto a:ord[i])res+=abs(a-ord[i][n/2]); } allocate_tickets(ans); return res; }
#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...