제출 #1249822

#제출 시각아이디문제언어결과실행 시간메모리
1249822Zicrus선물 (IOI25_souvenirs)C++20
21 / 100
12 ms416 KiB
#include <bits/stdc++.h>
#include "souvenirs.h"
using namespace std;
typedef long long ll;
typedef pair<ll, ll> pll;
#define all(v) v.begin(), v.end()
constexpr ll inf = 1ll << 62ll;
mt19937 mt(time(0));
ll _ = 0;

void buy_souvenirs(int N, ll P0) {
	ll n = N;
	vector<ll> prices(n);
	prices[0] = P0;
	vector<ll> cnt(n);
	for (ll nxt = 1; nxt < n; nxt++) {
		ll guess = prices[nxt-1] - 1;
		auto [vec, rem] = transaction(guess);
		for (auto &e : vec) cnt[e]++;
		if (vec.size() > 1 || rem != 0) prices[nxt] = guess-1;
		else prices[nxt] = guess;
	}
	for (ll i = 1; i < n; i++) {
		while (cnt[i] < i) transaction(prices[i]), cnt[i]++;
	}
}

#ifdef TEST
#include "grader.cpp"
#endif
#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...