Pagini recente » Cod sursa (job #491584) | Cod sursa (job #2860967) | Cod sursa (job #32906) | Cod sursa (job #1371575) | Cod sursa (job #39536)
Cod sursa(job #39536)
#include<stdio.h>
struct bani{
int v,nr,poz,con;
};
int val[33];
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,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];
}
}
val[0]=1;
for(j=1;j<=x[n-1].v;j++){
val[j]=val[j-1]*c;
}
i=n-1;
while(s!=l){
if(x[i].nr){
if(val[x[i].v]<=l-s)
nec=(l-s)/val[x[i].v];
if(nec<=x[i].nr){
s=s+val[x[i].v]*nec;
x[i].con=nec;
m=m+nec;
}
else{
s=s+val[x[i].v]*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;
}