Submission #603871

#TimeUsernameProblemLanguageResultExecution timeMemory
603871CyberCowCarnival Tickets (IOI20_tickets)C++17
0 / 100
1 ms340 KiB
#include "tickets.h" #include <vector> #include <cmath> #include <algorithm> #include <set> using namespace std; using ll = long long; ll n, m; long long find_maximum(int k, vector<vector<int>> x) { n = x.size(); m = x[0].size(); vector<vector<int>>anss(n, vector<int>(m, -1)); vector<set<pair<ll, int>>> v(n); for (int i = 0; i < n; i++) { for (int j = 0; j < m; j++) { v[i].insert({ x[i][j], j }); } } ll ans = 0; for (int i = 0; i < k; i++) { vector<ll> q; for (int j = 0; j < n/2; j++) { q.push_back(v[i].begin()->first); anss[j][v[i].begin()->second] = i; v[i].erase(v[i].begin()); } for (int j = n/2; j < n; j++) { q.push_back((--v[i].end())->first); anss[j][(--v[i].end())->first] = i; v[i].erase(--v[i].end()); } for (int j = 0; j < n; j++) { ans += abs(q[j] - q[n / 2]); } } allocate_tickets(anss); 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...