Pagini recente » Cod sursa (job #2242225) | Cod sursa (job #475924) | Cod sursa (job #810876) | Cod sursa (job #275128) | Cod sursa (job #38944)
Cod sursa(job #38944)
#include <stdio.h>
int main(){
freopen("shop.in","r",stdin);
freopen("shop.out","w",stdout);
long long N,C,L,i,j,min,s,x;
long long A[34],p[34],tip[34],m[34],ind[34];
scanf("%I64d %I64d %I64d",&N,&C,&L);
p[0]=1;A[0]=0;m[0]=0;tip[0]=0;
for (i=1;i<=32;i++){A[i]=0;p[i]=p[i-1]*C;m[i]=0;tip[i]=0;}
for (i=1;i<=N;i++){
scanf("%I64d",&x);
scanf("%I64d",&A[x]);
tip[x]=i;
}
j=32;s=0;
while (L){
min=L/p[j];
if (A[j]<min)min=A[j];
L-=min*p[j];
m[j]=min;
s+=min;
j--;
if (j<0)break;
}
for (i=0;i<=32;i++){
ind[tip[i]]=i;
}
printf("%I64d\n",s);
for (i=1;i<=N;i++){
printf("%I64d ",m[ind[i]]);
}
printf("\n");
return 0;
}