Submission #1239534

#TimeUsernameProblemLanguageResultExecution timeMemory
1239534Muhammad_AneeqCarnival Tickets (IOI20_tickets)C++17
11 / 100
1 ms840 KiB
#include "tickets.h" #include <vector> #include <queue> #include <iostream> #include <algorithm> using namespace std; #define ll long long int const N=1510; long long dp[N]={}; 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(); long long ans=0,sm=0; bool vis[n]={}; vector<vector<int>>ret(n,vector<int>(m,-1)); int l[n],r[n]; for (int i=0;i<n;i++) { l[i]=0; r[i]=m-1; } int sz=n/2; for (int index=0;index<k;index++) { vector<pair<ll,int>>pq; for (int j=0;j<n;j++) { vis[j]=0; pq.push_back({a[j][l[j]],j}); pq.push_back({a[j][r[j]],j}); } sort(begin(pq),end(pq)); int cnt=0; vector<ll>cur; for (int i=0;i<pq.size();i++) { if (cnt==sz) break; if (vis[pq[i].second]) continue; cnt++; vis[pq[i].second]=1; int ind=pq[i].second; ret[ind][l[ind]]=index; l[ind]++; cur.push_back(pq[i].first); } for (int i=pq.size()-1;i>=0;i--) { if (cnt==n) break; if (vis[pq[i].second]) continue; cnt++; vis[pq[i].second]=1; int ind=pq[i].second; ret[ind][r[ind]]=index; r[ind]--; cur.push_back(pq[i].first); } sort(begin(cur),end(cur)); for (auto j:cur) ans+=abs(cur[sz-1]-j); } 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...