Pagini recente » Cod sursa (job #14801) | Cod sursa (job #1959683) | Cod sursa (job #1398290) | Cod sursa (job #2694622) | Cod sursa (job #196075)
Cod sursa(job #196075)
#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;
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=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]);
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;
}