Pagini recente » Cod sursa (job #302327) | Cod sursa (job #2170802) | Cod sursa (job #698923) | Cod sursa (job #1120850) | Cod sursa (job #46766)
Cod sursa(job #46766)
#include<stdio.h>
#include<math.h>
long long t[1001],x[1001],y[1001],w[1001],i,j,n,m,k,l,s,a,z;
int main()
{
freopen("shop.in","r",stdin);
freopen("shop.out","w",stdout);
scanf("%lld%lld%lld",&n,&k,&m);
for (i=1;i<=n;i++)
{
scanf("%lld%lld",&x[i],&y[i]);
t[i]=i;
}
a=1;
while (a)
{
a=0;
for (i=1;i<n;i++)
if (x[i]<x[i+1]) {a=x[i]; x[i]=x[i+1]; x[i+1]=a; a=y[i]; y[i]=y[i+1]; y[i+1]=a; a=t[i]; t[i]=t[i+1]; t[i+1]=a;a=1;}
}
for (i=1;i<=n&&m;i++)
{
z=0;
while (m>=pow(k,x[i])&&y[i]>0) {m-=pow(k,x[i]);z++;y[i]--;}
s+=z;
w[t[i]]=z;
}
printf("%lld\n",s);
for (i=1;i<=n;i++)
printf("%lld ",w[i]);
printf("\n");
return 0;
}