Submission #1239507

#TimeUsernameProblemLanguageResultExecution timeMemory
1239507MuhammadSaramCarnival Tickets (IOI20_tickets)C++20
14 / 100
442 ms53304 KiB
#include "tickets.h" #include <bits/stdc++.h> using namespace std; #define ll long long long long find_maximum(int k, vector<vector<int>> a) { int n=a.size(), m=a[0].size(); int id[n][2], cnt[n]={}; set<pair<int,int>> se; for (int i=0;i<n;i++) { id[i][0]=0, id[i][1]=m-1; for (int x:a[i]) cnt[i]+=x; } ll ans=0; vector<vector<int>> v(n, vector<int>(m,-1)); for (int r=0;r<k;r++) { for (int i=0;i<n;i++) se.insert({cnt[i],i}); int x=0, y=0; for (int i=0;i<n;i++) { pair<int,int> p=*se.begin();se.erase(p); int al=0; if (i<n/2) { if (m-r-p.first) x++; else al=1,y++, cnt[p.second]--; } else { if (p.first) al=1,y++, cnt[p.second]--; else x++; } if (!al) v[p.second][id[p.second][0]++]=r; else v[p.second][id[p.second][1]--]=r; } ans+=min(x,y); } allocate_tickets(v); 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...