Pagini recente » Cod sursa (job #2574372) | Cod sursa (job #161353) | Cod sursa (job #2574367) | Cod sursa (job #546640) | Cod sursa (job #1302989)
#include <iostream>
#include <fstream>
using namespace std;
ifstream f("shop.in");
ofstream g("shop.out");
long long int val[50],v[50],sol[50];
int main()
{
long long int n,c,l,mx = -100,p,cat,monezi,b,a;
f >> n >> c >> l;
for(int i = 1; i <= n; i++){
f >> a >> b;
if(a > mx)
mx = a;
v[a] += b;
sol[i] = a;
}
val[0] = 1;
p = 1;
for(int i = 1; i <= mx; i++){
p *= c;
val[i] = p;
}
monezi = 0;
for(int i = mx; i >= 0 && l != 0; i--){
if(v[i] != 0){
cat = l / val[i];
if(cat <= v[i]){
v[i] = cat;
monezi += v[i];
l = l - val[i] * cat;
} else {
monezi += v[i];
l = l - val[i] * v[i];
}
}
}
g << monezi << "\n";
for(int i = 1; i <= n; i++)
g << v[sol[i]] << " ";
return 0;
}