Pagini recente » Cod sursa (job #1411697) | Cod sursa (job #3205221) | Cod sursa (job #8497) | Cod sursa (job #2654254) | Cod sursa (job #46777)
Cod sursa(job #46777)
#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;
long long ppow(long long k,long long p)
{
long long i,l;
l=1;
for (i=1;i<=p;i++)
l=l*k;
return l;
}
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;}
}
s=0;
for (i=1;i<=n;i++)
{
z=0;
while (m>=ppow(k,x[i])&&y[i]>0) {m-=ppow(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;
}