Pagini recente » Cod sursa (job #2641081) | Cod sursa (job #2128067) | Cod sursa (job #3291762) | Cod sursa (job #60510) | Cod sursa (job #196082)
Cod sursa(job #196082)
#include <stdio.h>
#define Nmax 32
long long n,c,l,A[Nmax],B[Nmax],D[Nmax],m,mm,nr=0,V[Nmax],i,aux,k;
void sortare()
{ long long i,j;
for (i=1;i<n;i++)
for (j=i+1;j<=n;j++)
if (A[i]<A[j])
{
aux=A[i];
A[i]=A[j];
A[j]=aux;
aux=B[i];
B[i]=B[j];
B[j]=aux;
aux=D[i];
D[i]=D[j];
D[j]=aux;
}
}
long long minim(long long a, long long b)
{
if (a>b) return b;
else return a;
}
long long putere(long long s)
{
long long put=1,i;
for (i=1;i<=s;i++)
put*=c;
return put;
}
int main()
{
freopen("shop.in","rt",stdin);
freopen("shop.out","wt",stdout);
scanf("%lld %lld %lld", &n, &c, &l);
for (i=1;i<=n;i++)
{
scanf("%lld %lld", &A[i], &B[i]);
D[i]=i;
}
sortare();
i=1;
while (l)
{
k=putere(A[i]);
m=l/k;
mm=minim(B[i],m);
l-=mm*k;
V[D[i]]+=mm;
nr+=mm;
i++;
}
printf("%lld\n",nr);
for (i=1;i<=n;i++)
printf("%lld ", V[i]);
return 0;
}