Pagini recente » Cod sursa (job #989674) | Cod sursa (job #2049696) | Cod sursa (job #834957) | Cod sursa (job #2391233) | Cod sursa (job #171516)
Cod sursa(job #171516)
#include<stdio.h>
#include<stdlib.h>
long long w[33];
int fol[33];
int comp(const void *a, const void *b){
int *aa=(int *)a, *bb=(int *)b;
int x=*aa, y=*bb;
return x-y;
}
struct obiect{
int a,b,ind;
};
int main () {
int i,n,c,max=-1,nr=0;
long long k=1,l=0;
obiect v[60];
freopen("shop.in","r",stdin);
freopen("shop.out","w",stdout);
scanf("%d%d",&n,&c);
scanf("%lld",&l);
for(i=0;i<n;i++){
scanf("%d%d",&v[i].a,&v[i].b);
if(v[i].a>max)
max=v[i].a;
}
for(i=0;i<=max;i++){
w[i]=k;
k*=c;
v[i].ind=i;
}
qsort(v,n,sizeof(v[0]),comp);
for(i=n-1;l>0;i--){
while(l>=w[v[i].a]&&v[i].b>0){
++nr;
--v[i].b;
++fol[v[i].ind];
l-=w[v[i].a];
}
}
printf("%d\n",nr);
for(i=0;i<n;i++)
printf("%d ",fol[i]);
return 0;
}