Pagini recente » Cod sursa (job #1695263) | Cod sursa (job #1621906) | Cod sursa (job #2068330) | Cod sursa (job #285881) | Cod sursa (job #38898)
Cod sursa(job #38898)
#include<stdio.h>
struct bani{
int v,nr,poz,con;
};
bani x[35];
int main(){
FILE*in=fopen("shop.in","r");
FILE*out=fopen("shop.out","w");
int n,c,i,pmin,j,nec;
int l,s=0,val,m=0;
fscanf(in,"%d %d %d",&n,&c,&l);
for(i=0;i<n;i++){
fscanf(in,"%d %d",&x[i].v,&x[i].nr);
x[i].poz=i;
}
for(i=0;i<n-1;i++){
pmin=i;
for(j=i+1;j<n;j++){
if(x[j].v<x[pmin].v)
pmin=j;
}
if(i!=pmin){
x[35]=x[i];
x[i]=x[pmin];
x[pmin]=x[35];
}
}
i=n-1;
while(s!=l){
val=1;
for(j=0;j<x[i].v;j++)
val=val*c;
if(val<=l-s)
nec=(l-s)/val;
if(nec<=x[i].nr){
s=s+val*nec;
x[i].con=nec;
m=m+nec;
}
else{
s=s+val*x[i].nr;
x[i].con=x[i].nr;
m=m+x[i].nr;
}
i--;
}
for(i=0;i<n-1;i++){
pmin=i;
for(j=i+1;j<n;j++){
if(x[j].poz<x[pmin].poz)
pmin=j;
}
if(i!=pmin){
x[35]=x[i];
x[i]=x[pmin];
x[pmin]=x[35];
}
}
fprintf(out,"%d\n",m);
for(i=0;i<n;i++){
fprintf(out,"%d",x[i].con);
if(i<n-1)
fprintf(out," ");
}
fprintf(out,"\n");
fclose(in);
fclose(out);
return 0;
}