#include "tickets.h"
#include <bits/stdc++.h>
#define fi first
#define se second
#define sz(x) (int)x.size()
#define cmin(a, b) a=min(a, b)
#define cmax(a, b) a=max(a, b)
#define all(x) (x).begin(),(x).end()
#define rall(x) (x).rbegin(),(x).rend()
#define pb push_back
#define int long long
using namespace std;
int n, m, k;
vector<vector<int>> a;
int find_maximum(signed K, vector<vector<signed>> x) {
n=sz(x), m=sz(x[0]), k=K;
a.resize(n, vector<int>(m));
for (int i=0; i<n; i++) for (int j=0; j<m; j++) a[i][j]=x[i][j];
vector<int> small(n), big(n);
for (int i=0; i<n; i++) {
small[i]=a[i][0], big[i]=a[i][0];
for (int j=1; j<m; j++) cmin(small[i], a[i][j]), cmax(big[i], a[i][j]);
}
int res=0;
vector<vector<signed>> ans(n, vector<signed>(m, -1));
if (m==1) {
ans.clear(), ans.resize(n, vector<signed>(m, 0));
allocate_tickets(ans);
vector<int> b; for (int i=0; i<n; i++) b.pb(a[i][0]);
sort(all(b));
for (int i=0; i<n/2; i++) res+=b[n-i-1]-b[i];
return res;
}
vector<bool> used(n, 0);
for (int t=0; t<n/2; t++) {
vector<pair<int, int>> mini, maxi;
for (int i=0; i<n; i++) if (!used[i]) mini.pb({small[i], i}), maxi.pb({big[i], i});
sort(all(mini)), sort(rall(maxi));
if (mini[0].se!=maxi[0].se) {
used[mini[0].se]=used[maxi[0].se]=1;
res+=maxi[0].fi-mini[0].fi;
for (int j=0; j<m; j++) if (a[mini[0].se][j]==mini[0].fi) {
ans[mini[0].se][j]=0;
break;
}
for (int j=0; j<m; j++) if (a[maxi[0].se][j]==maxi[0].fi) {
ans[maxi[0].se][j]=0;
break;
}
} else if (maxi[0].fi-mini[1].fi>=maxi[1].fi-mini[0].se) {
used[maxi[0].se]=used[mini[1].se]=1;
res+=maxi[0].fi-mini[1].fi;
for (int j=0; j<m; j++) if (a[mini[1].se][j]==mini[1].fi) {
ans[mini[1].se][j]=0;
break;
}
for (int j=0; j<m; j++) if (a[maxi[0].se][j]==maxi[0].fi) {
ans[maxi[0].se][j]=0;
break;
}
} else {
used[maxi[1].se]=used[mini[0].se]=1;
res+=maxi[1].fi-mini[0].fi;
for (int j=0; j<m; j++) if (a[mini[0].se][j]==mini[0].fi) {
ans[mini[0].se][j]=0;
break;
}
for (int j=0; j<m; j++) if (a[maxi[1].se][j]==maxi[1].fi) {
ans[maxi[1].se][j]=0;
break;
}
}
}
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... |