제출 #1050227

#제출 시각아이디문제언어결과실행 시간메모리
1050227fuad27카니발 티켓 (IOI20_tickets)C++17
0 / 100
0 ms348 KiB
#include "tickets.h" #include <bits/stdc++.h> using namespace std; long long find_maximum(int k, std::vector<std::vector<int>> x) { #define int long long int n = x.size(); int m = x[0].size(); vector<pair<int,int>> s(n); vector<int> all; for(int i = 0;i<n;i++) { s[i] = pair{0, m-1}; for(int j:x[i])all.push_back(j); } sort(all.begin(), all.end()); int med = all[(int)all.size()/2]; vector<int> cnt(n); long long sum=0; for(int i = 0;i<n;i++) { for(int j:x[i]) { if(j <= med) { sum-=j; cnt[i]++; } else sum+=j; } } vector<vector<int32_t>> res(n, vector<int32_t>(m, -1)); for(int _ = 0;_<m;_++) { vector<int> idxs(n); iota(idxs.begin(), idxs.end(), 0); sort(idxs.begin(), idxs.end(), [&](int a, int b) -> bool { return cnt[a] < cnt[b]; }); vector<int> ans; for(int i = 0;i<n/2;i++) { res[idxs[i]][s[idxs[i]].second--]=_; } for(int i = n/2;i<n;i++) { assert(cnt[idxs[i]]); cnt[idxs[i]]--; res[idxs[i]][s[idxs[i]].first++]=_; } } allocate_tickets(res); #undef int 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...