Submission #548624

#TimeUsernameProblemLanguageResultExecution timeMemory
548624cig32Distributing Candies (IOI21_candies)C++17
0 / 100
5047 ms14504 KiB
#include "candies.h"
#include "bits/stdc++.h"
using namespace std;

#include <cassert>
#include <cstdio>
#include <vector>


std::vector<int> distribute_candies(std::vector<int> c, std::vector<int> l,
                                    std::vector<int> r, std::vector<int> v) {
  int n = c.size();
  std::vector<int> s(n);
  int q = l.size();
  int p[n], invp[n];
  pair<int, int> d[n];
  for(int i=0; i<n; i++) d[i] = {c[i], i};
  sort(d, d + n);
  for(int i=0; i<n; i++) p[i] = 0, invp[i] = d[i].first;
  for(int i=0; i<q; i++) {
    for(int j=0; j<n; j++) {
      p[j] += v[i];
      invp[j] -= v[i];
      if(p[j] < 0) {
        p[j] = 0, invp[j] = d[j].first;
      }
      if(invp[j] < 0) {
        invp[j] = 0, p[j] = d[j].first;
      }
    }
  }
  for(int i=0; i<n; i++) s[d[i].second] = p[i];
  return s;
}
#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...