Pagini recente » Cod sursa (job #546250) | Cod sursa (job #2349268) | Cod sursa (job #1099957) | Cod sursa (job #714133) | Cod sursa (job #196072)
Cod sursa(job #196072)
#include <stdio.h>
#define Nmax 1000
int 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-1;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;
}
}
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=2;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]);
for (i=n;i>=1;i--)
D[i]=i;
sortare();
i=1;
while (l)
{
k=putere(A[i]);
m=l/k;
mm=minim(B[i],m);
l-=m*k;
V[D[i]]+=mm;
nr+=mm;
i++;
}
printf("%lld\n",nr);
for (i=1;i<=nr;i++)
printf("% lld",V[i]);
return 0;
}