Submission #771623

#TimeUsernameProblemLanguageResultExecution timeMemory
771623ono_de206카니발 티켓 (IOI20_tickets)C++14
25 / 100
684 ms83960 KiB
#include "tickets.h" #include<bits/stdc++.h> using namespace std; #define in insert #define all(x) x.begin(),x.end() #define pb push_back #define eb emplace_back #define ff first #define ss second // #define int long long typedef long long ll; typedef vector<int> vi; typedef set<int> si; typedef multiset<int> msi; typedef pair<int, int> pii; typedef vector<pii> vpii; long long find_maximum(int k, vector<vector<int>> a) { int n = a.size(); int m = a[0].size(); vector<vector<int>> answer(n, vector<int>(m, -1)); vector<int> l(n), r(n); long long ret = 0; vector<pair<int, int>> v; for(int i = 0; i < n; i++) { r[i] = m; for(int j = 0; j < m; j++) { v.eb(a[i][j], i); } } sort(all(v)); for(int i = 0; i < n * m / 2; i++) { ret += v[i + n * m / 2].ff - v[i].ff; l[v[i].ss]++; } for(int t = 0; t < m; t++) { v.clear(); for(int i = 0; i < n; i++) { v.eb(l[i], i); } sort(all(v)); for(int i = n - 1; i >= n / 2; i--) { answer[v[i].ss][--l[v[i].ss]] = t; } for(int i = 0; i < n / 2; i++) { answer[v[i].ss][--r[v[i].ss]] = t; } } allocate_tickets(answer); return ret; }
#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...