Submission #1209855

#TimeUsernameProblemLanguageResultExecution timeMemory
1209855simona1230Carnival Tickets (IOI20_tickets)C++20
25 / 100
864 ms101860 KiB
#include "tickets.h" #include <vector> #include <bits/stdc++.h> using namespace std; int a[1501][1501]; bool cmp(pair<int,int> p1,pair<int,int> p2) { return a[p1.first][p1.second]<a[p2.first][p2.second]; } long long find_maximum(int k, std::vector<std::vector<int>> x) { vector<long long> all; vector<vector<int> > t=x; vector<pair<int,int> > v; for(int i=0;i<x.size();i++) { for(int j=0;j<x[i].size();j++) { a[i][j]=x[i][j]; all.push_back(x[i][j]); v.push_back({i,j}); } } sort(all.begin(),all.end()); sort(v.begin(),v.end(),cmp); vector<int> s[1501],b[1501]; long long sum=0; for(int i=0;i<all.size();i++) { if(i<all.size()/2)s[v[i].first].push_back(v[i].second),sum-=all[i]; else b[v[i].first].push_back(v[i].second),sum+=all[i]; } pair<int,int> p[1501]; for(int i=0;i<x[0].size();i++) p[i].first=0,p[i].second=i; for(int i=0;i<x.size();i++) { sort(p,p+x[0].size()); for(int j=0;j<s[i].size();j++) { t[i][s[i][j]]=p[j].second; p[j].first++; } for(int j=0;j<b[i].size();j++) { t[i][b[i][j]]=p[j+s[i].size()].second; } } allocate_tickets(t); return sum; }
#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...