Submission #886378

#TimeUsernameProblemLanguageResultExecution timeMemory
886378NeroZeinCarnival Tickets (IOI20_tickets)C++17
27 / 100
389 ms51488 KiB
#include "tickets.h"
#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();
  long long ret = 0; 
  vector<int> p(n), s(n, m - 1); 
  vector<vector<int>> answer(n, vector<int> (m, -1));
  for (int round = 0; round < k; ++round) {
    vector<pair<int, int>> vec; 
    for (int i = 0; i < n; ++i) {
      vec.emplace_back(x[i][p[i]] + x[i][s[i]], i);
    } 
    sort(vec.begin(), vec.end()); 
    for (int i = 0; i < n; ++i) {
      int id = vec[i].second;
      if (i < n / 2) {
        ret -= x[id][p[id]];
        answer[id][p[id]] = round; 
        p[id]++; 
      } else {
        ret += x[id][s[id]];
        answer[id][s[id]] = round;
        s[id]--; 
      }
    }
  }
  allocate_tickets(answer);
  return ret;
}
#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...