#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 time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |