Cod sursa(job #196072)

Utilizator AndreiDDiaconeasa Andrei AndreiD Data 24 iunie 2008 13:26:36
Problema Shop Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.94 kb
#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;
}