제출 #1283818

#제출 시각아이디문제언어결과실행 시간메모리
1283818Jawad_Akbar_JJ카니발 티켓 (IOI20_tickets)C++20
100 / 100
532 ms62168 KiB
#include <iostream> #include <vector> #include <algorithm> #include "tickets.h" using namespace std; int ind[1505]; long long find_maximum(int k, vector<vector<int>> vec){ long long n = vec.size(), m = vec[0].size(), Ans = 0; vector<vector<int>> alc(n, vector<int> (m, -1)); vector<pair<int,int>> vc; for (int i=0;i<n;i++){ for (int j=0;j<k;j++) Ans += vec[i][m - j - 1], vc.push_back({vec[i][m - (k - j)] + vec[i][j], i}); } sort(begin(vc), end(vc)); for (int i=0;i<vc.size();i++){ if (i < k * n / 2) Ans -= vc[i].first, ind[vc[i].second]++; } for (int it=0;it<k;it++){ vc.clear(); for (int i=0;i<n;i++) vc.push_back({ind[i], i}); sort(begin(vc), end(vc)); for (int i=0;i<n;i++){ auto [vl, id] = vc[i]; if (i >= n / 2){ ind[id]--; alc[id][ind[id]] = it; } else{ vec[id].pop_back(); alc[id][vec[id].size()] = it; } } } allocate_tickets(alc); 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...