제출 #1301461

#제출 시각아이디문제언어결과실행 시간메모리
1301461sanoCarnival Tickets (IOI20_tickets)C++20
27 / 100
257 ms51444 KiB
#include "tickets.h" #include <vector> #include <algorithm> #define ll long long #define For(i, n) for(int i = 0; i < n; i++) #define NEK 1000000000 #define vec vector #define pii pair<int, int> using namespace std; long long find_maximum(int k, std::vector<std::vector<int>> x) { int n = x.size(); int m = x[0].size(); if(m == 1){ vec<int> a; For(i, n){ a.push_back(x[i][0]); } sort(a.begin(), a.end()); ll sum = 0; vec<vec<int>> odp(n, vec<int>(1, 0)); For(i, n/2){ sum -= a[i]; sum += a[i+n/2]; } allocate_tickets(odp); return sum; } vec<pii> s; ll sum = 0; vec<int> bt, bt2; vec<vec<int>> odp(n, vec<int>(m,-1)); For(i, n){ int mi = 0, ma = 0; For(j, x[i].size()){ if(x[i][j] < x[i][mi]){ mi = j; } if(x[i][j] > x[i][ma]){ ma = j; } } odp[i][ma] = 0; bt.push_back(ma); bt2.push_back(mi); s.push_back({x[i][mi] + x[i][ma], i}); sum += x[i][ma]; } sort(s.begin(), s.end()); For(i, n/2){ odp[s[i].second][bt[s[i].second]] = -1; odp[s[i].second][bt2[s[i].second]] = 0; sum -= s[i].first; } allocate_tickets(odp); 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...