Submission #1239783

#TimeUsernameProblemLanguageResultExecution timeMemory
1239783Muhammad_AneeqCarnival Tickets (IOI20_tickets)C++17
0 / 100
341 ms52844 KiB
#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 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...