Pagini recente » Cod sursa (job #1450994) | Cod sursa (job #2366388) | Cod sursa (job #2957834) | Cod sursa (job #2454009) | Cod sursa (job #45611)
Cod sursa(job #45611)
#include <fstream.h>
#include <math.h>
ifstream f("shop.in");
ofstream g("shop.out");
long long n,c,a[31],i,d[32];
long long b[32],l,x,s;
int swapp (long long &a,long long &b){
int x=a;
a=b;
b=x;
return 0;
}
int main(){
f>>n>>c>>l;
for(i=1;i<=n;i++){f>>a[i]>>b[i];d[i]=i;}
do{
x=0;
for(i=1;i<n;i++)if(a[i]<a[i+1]){swapp(a[i],a[i+1]);x=1;swapp(b[i],b[i+1]);swapp(d[i],d[i+1]);}}
while(x);
for(i=1;i<=n;i++){
x=l/pow(c,a[i]);
if(x<=b[i]){l=l-x*pow(c,a[i]);s+=x;b[i]=x;}
else {l-=b[i]* pow(c,a[i]);s+=b[i];}
if(l==0) break;
}
do{
x=0;
for(i=1;i<n;i++)if(d[i]>d[i+1]){;x=1;swapp(b[i],b[i+1]);swapp(d[i],d[i+1]);}}
while(x);
g<<s<<'\n';
for(i=1;i<=n;i++)g<<b[i]<<" ";
g.close();
f.close();
return 0;
}