#include "tickets.h"
#include <vector>
#include <queue>
#include <iostream>
#include <algorithm>
#include <set>
using namespace std;
#define ll long long
int const N=1510;
ll mul(ll a,ll b)
{
return a*b;
}
long long find_maximum(int k, vector<vector<int>> a) {
int n = a.size();
int m = a[0].size();
vector<pair<ll,int>>pq;
vector<vector<int>>ret(n,vector<int>(m,-1));
set<pair<int,int>>cnt;
int l[n],r[n];
ll ans=0;
for (int i=0;i<n;i++)
{
l[i]=0,r[i]=m-1;
int f=0;
for (int j=0;j<m;j++)
f+=(a[i][j]==0);
cnt.insert({f,i});
}
for (int index=0;index<k;index++)
{
vector<int>g;
vector<int>f;
for (int i=0;i<n/2;i++)
{
g.push_back((*rbegin(cnt)).second);
f.push_back((*rbegin(cnt)).first);
cnt.erase(*rbegin(cnt));
}
int cn=0;
for (auto i:g)
{
cn+=(a[i][l[i]]==0);
ret[i][l[i]]=index;
l[i]++;
}
for (auto [j,i]:cnt)
{
ret[i][r[i]]=index,r[i]--;
}
ans+=cn;
for (int i=0;i<n/2;i++)
cnt.insert({f[i]-1,g[i]});
}
allocate_tickets(ret);
return ans;
}
# | 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... |