Submission #1264702

#TimeUsernameProblemLanguageResultExecution timeMemory
1264702martin_011Souvenirs (IOI25_souvenirs)C++20
21 / 100
12 ms416 KiB
#include "souvenirs.h"
#include <utility>
#include <vector>
#include <bits/stdc++.h>

using namespace std;

typedef long long ll;
typedef vector<ll> vll;
typedef vector<int> vi;


void buy_souvenirs(int n, long long p0) {
  ll g = p0;
  ll s = 0;
  ll k = 1;
  vll res(n, 0);
  for (int i=0; i<n; i++) res[i] = i;
  vll a(n, 0);
  a[0] = p0;
  vll r(n, 0);

  for (int i=1; i<n; i++) {
    ll m = (k+1) % 2;
    pair<vi, ll> aux =  transaction(g - s - m - 1);
    for (auto x : aux.first) r[x]++;

    g = g - s - m - 1;
    k = aux.first.size();
    s = aux.second;
    m = (k+1) % 2;
    a[i] = g - s - m;
  }

  for (int i=0; i<n; i++) {
    while (r[i] < res[i]) {
      transaction(a[i]);
      r[i]++;
    }
  }
}
#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...