Cod sursa(job #631538)

Utilizator BlaugranasEnal Gemaledin Blaugranas Data 8 noiembrie 2011 14:49:50
Problema Shop Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.7 kb
#include<stdio.h>
#define N 31
long long l,y;
long n,c,a[N],b[N],m,j,i,x[N],z;

long long put(long x,long n)
{if(!n)
        return 1;
if(n%2)
        return x*put(x,(n-1)/2)*put(x,(n-1)/2);
return put(x,n/2)*put(x,n/2);}

long min(long x,long y)
{return x<y?x:y;}

int main()
{FILE *f=fopen("shop.in","r"),*g=fopen("shop.out","w");
fscanf(f,"%ld%ld%lld",&n,&c,&l);
for(i=1;i<=n;i++)
       fscanf(f,"%ld%ld",&a[i],&b[i]);
while(l)
       {m=-1,j=0;
       for(i=1;i<=n;i++)
       if(m<a[i])
              m=a[i],j=i;
       y=put(c,m);
       x[j]=min(l/y,b[j]);
       a[j]=-1,l-=(x[j]*y),z+=x[j];}
fprintf(g,"%ld\n",z);
for(i=1;i<=n;i++)
       fprintf(g,"%ld ",x[i]);
return 0;}