Submission #313743

#TimeUsernameProblemLanguageResultExecution timeMemory
313743DanerZeinCarnival Tickets (IOI20_tickets)C++14
11 / 100
4 ms772 KiB
#include "tickets.h" #include <vector> #include <bits/stdc++.h> using namespace std; typedef long long ll; typedef pair<int,int> ii; typedef pair<ll,ii> iii; typedef vector<ll> vi; int vis[1510]; long long find_maximum(int k, std::vector<std::vector<int>> x) { vector<vector<int> > t1,t2; int n=x.size(); int m=x[0].size(); t1.resize(n); t2.resize(n); deque<iii> o1,o2; for(int i=0;i<n;i++){ for(int j=0;j<m;j++){ t1[i].push_back(-1); t2[i].push_back(-1); o2.push_back(iii(x[i][j],ii(i,j))); o1.push_back(iii(x[i][j],ii(i,j))); } } sort(o2.begin(),o2.end()); sort(o1.begin(),o1.end()); memset(vis,0,sizeof vis); vi aux; int j=0; while(j!=n/2){ ll x=o1.back().first; int a=o1.back().second.first; int b=o1.back().second.second; o1.pop_back(); if(!vis[a]){ aux.push_back(x); t1[a][b]=0; vis[a]=1; j++; } } j=0; while(j!=n/2){ ll x=o1.front().first; int a=o1.front().second.first; int b=o1.front().second.second; if(!vis[a]){ j++; aux.push_back(x); vis[a]=1; t1[a][b]=0; } o1.pop_front(); } sort(aux.begin(),aux.end()); ll b=aux[(n/2)-1]; ll res=0; for(int i=0;i<n;i++){ res+=abs(b-aux[i]); } memset(vis,0,sizeof vis); aux.clear(); j=0; while(j!=n/2){ ll x=o2.front().first; int a=o2.front().second.first; int b=o2.front().second.second; if(!vis[a]){ j++; aux.push_back(x); vis[a]=1; t2[a][b]=0; } o2.pop_front(); } j=0; while(j!=n/2){ ll x=o2.back().first; int a=o2.back().second.first; int b=o2.back().second.second; o2.pop_back(); if(!vis[a]){ aux.push_back(x); t2[a][b]=0; vis[a]=1; j++; } } sort(aux.begin(),aux.end()); b=aux[(n/2)-1]; ll res1=0; for(int i=0;i<n;i++){ res1+=abs(b-aux[i]); } if(res>res1){ allocate_tickets(t1); return res; } else{ allocate_tickets(t2); return res1; } }
#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...