Submission #1144756

#TimeUsernameProblemLanguageResultExecution timeMemory
1144756PagodePaivaCarnival Tickets (IOI20_tickets)C++20
25 / 100
338 ms62352 KiB
#include<bits/stdc++.h> #include "tickets.h" #include <vector> using namespace std; const int N = 1510; vector <array <int, 2>> v; int ans[N][N]; int l[N], r[N]; long long find_maximum(int k, std::vector<std::vector<int>> x) { memset(ans, -1, sizeof ans); int n = x.size(); int m = x[0].size(); for(int i = 0;i < n;i++){ int cnt = 0; r[i] = m-1; for(int j = 0;j < m;j++) cnt += x[i][j]; v.push_back({cnt, i}); } long long res = 0; for(int turno = 0;turno < k;turno++){ sort(v.begin(), v.end()); for(int i = 0;i < n/2;i++){ ans[v[i][1]][l[v[i][1]]] = turno; res -= x[v[i][1]][l[v[i][1]]]; l[v[i][1]]++; } for(int i = n/2;i < n;i++){ ans[v[i][1]][r[v[i][1]]] = turno; res += x[v[i][1]][r[v[i][1]]]; r[v[i][1]]--; v[i][0]--; } } vector<vector<int>> answer; for(int i = 0;i < n;i++){ vector <int> aux; for(int j = 0;j < m;j++){ aux.push_back(ans[i][j]); } answer.push_back(aux); } allocate_tickets(answer); return res; }
#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...