Pagini recente » Cod sursa (job #1057956) | Monitorul de evaluare | Cod sursa (job #292600) | Cod sursa (job #1073460) | Cod sursa (job #2181769)
//#include <iostream>
#include <fstream>
#include <algorithm>
int n, c, f[35], i, j, nrm, minim[35];
long long l, s, wer, p, tot;
struct ches{
int a, b;
}v[100];
int comp(ches x,ches y){
return x.a>y.a;
}
int main(){
std::ifstream cin("shop.in");
std::ofstream cout("shop.out");
cin>>n>>c>>l;
for (i=0;i<n;i++){
cin>>v[i].a>>v[i].b;
f[i]=v[i].a;
}
std::sort(v,v+n,comp);
s=l;
i=0;
while (s>0){
wer=s/pow(c,v[i].a);
if(wer<v[i].b)
nrm=wer;
else
nrm=v[i].b;
p=nrm*pow(c,v[i].a);
if (s-p>=0){
s-=p;
minim[i]=nrm;
tot+=nrm;
}
i++;
}
cout<<tot<<"\n";
for (i=0;i<n;i++){
s=0;
for (j=0;j<n&&s==0;j++)
if(f[i]==v[j].a){
cout<<minim[j]<<" ";
s=1;
}
}
return 0;
}