Cod sursa(job #3233210)

Utilizator bent_larsenSturzu Antonio-Gabriel bent_larsen Data 2 iunie 2024 19:51:04
Problema Shop Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.69 kb
#include <bits/stdc++.h>
using namespace std;


int main() {
	freopen("shop.in", "r", stdin);
	freopen("show.out", "w", stdout);
	int n, c;
	uint64_t l;
	cin >> n >> c >> l;
	
	int cnt[33] = {0};
	vector<int> v;
	for(int i = 0;i < n;++i)
	{
		int a, b;
		cin >> a >> b;
		cnt[a] = b;
		v.push_back(a);
	}
	int ans[33] = {0}, sum = 0;
	
	for(int i = 32;i >= 0 && l;--i)
	{
		if(!cnt[i])
			continue;
		uint64_t pw = 1;
		for(int j = 0;j < i && pw <= l;++j)
			pw *= c;
		
		if(pw <= l)
		{
			ans[i] = min(l / pw, (uint64_t)cnt[i]);
			l -= pw * ans[i];
			sum += ans[i];
		}
	}
	cout << sum << "\n";
	for(int i = 0;i < v.size();++i)
		cout << ans[v[i]] << " ";
}