Submission #303064

#TimeUsernameProblemLanguageResultExecution timeMemory
303064tutisCarnival Tickets (IOI20_tickets)C++17
25 / 100
1058 ms62628 KiB
#include "tickets.h" #include <vector> #include <bits/stdc++.h> using namespace std; long long find_maximum(int k, vector<vector<int>> x) { int n = x.size(); int m = x[0].size(); vector<vector<int>> answer(n, vector<int>(m, -1)); long long ret = 0; int mxp = n / 2 * k; int M[n], P[n]; vector<pair<int, int>>A; for (int i = 0; i < n; i++) { M[i] = P[i] = 0; for (int j = 0; j < m; j++) A.push_back({x[i][j], i}); } sort(A.begin(), A.end()); for (int i = 0; i < n * k / 2; i++) { ret -= A[i].first; M[A[i].second]++; } reverse(A.begin(), A.end()); for (int i = 0; i < n * k / 2; i++) { ret += A[i].first; P[A[i].second]++; } int a[n]; int b[n]; for (int i = 0; i < n; i++) { a[i] = 0; b[i] = m - 1; } for (int g = 0; g < k; g++) { pair<int, int>x[n]; for (int i = 0; i < n; i++) x[i] = {P[i], i}; sort(x, x + n); for (int i = 0; i < n / 2; i++) { int id = x[i].second; answer[id][a[id]] = g; a[id]++; M[id]--; } for (int i = n / 2; i < n; i++) { int id = x[i].second; answer[id][b[id]] = g; b[id]--; P[id]--; } } allocate_tickets(answer); return ret; }

Compilation message (stderr)

tickets.cpp: In function 'long long int find_maximum(int, std::vector<std::vector<int> >)':
tickets.cpp:10:6: warning: unused variable 'mxp' [-Wunused-variable]
   10 |  int mxp = n / 2 * k;
      |      ^~~
#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...