제출 #808198

#제출 시각아이디문제언어결과실행 시간메모리
808198drdilyor카니발 티켓 (IOI20_tickets)C++17
0 / 100
1 ms468 KiB
#include<bits/stdc++.h> #include "tickets.h" using namespace std; using ll = long long; const int inf = 1e9; #define debug(args...) cout << "[" << #args << "]: "; debug_out(args...); void debug_out() { cout << endl; } template<typename H, typename... T> void debug_out(H h, T... t) { cout << h << ", "; debug_out(t...); } long long find_maximum(int k, std::vector<std::vector<int>> x) { int n = x.size(); int m = x[0].size(); assert(m == k); vector<tuple<int,int,int>> big; big.reserve(n * m); for (int i = 0; i < n; i++) { for (int j = 0; j < m;j++) big.push_back({x[i][j], i, j}); } sort(big.begin(), big.end()); vector low(n, vector<int>(m, 0)); for (int i = 0; i < n * m / 2; i++) { low[get<1>(big[i])][get<2>(big[i])] = 1; } vector ans(n, vector<int>(m, 0)); int round_low = 0, round_high = n-1; for (int i = 0; i < n; i++) { for (int j = 0; j < m; j++) { if (low[i][j]) { ans[i][j] = round_low++; if (round_low >= m) round_low -= m; } else { ans[i][j] = round_high--; if (round_high < 0) round_high += m; } } } allocate_tickets(ans); return 1; }
#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...