제출 #1254855

#제출 시각아이디문제언어결과실행 시간메모리
1254855AbdullahIshfaqSouvenirs (IOI25_souvenirs)C++20
100 / 100
12 ms420 KiB
#include "souvenirs.h"
#include <bits/stdc++.h>
using namespace std;
#define ll long long
ll c[100], t[100], n;
void recur(long long p){
  auto [l, r] = transaction(p);
  for (auto i : l)  t[i]++;
  while (l.size() > 1){
    if (c[l.back()]) r += c[l.back()], l.pop_back();
    else  recur((p - r) / l.size());
  }
  c[l[0]] = p - r;
  if (c[l[0] + 1] == 0 and l[0] != n - 1) recur(c[l[0]] - 1);
}
void buy_souvenirs(int N, ll p)
{
  n = N, recur(p - 1);
  for(int i = 1; i < n; i++)  while(t[i] < i) transaction(c[i]),t[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...