Cod sursa(job #45994)

Utilizator kyrkDragos Dumitrescu kyrk Data 2 aprilie 2007 10:50:12
Problema Shop Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.85 kb
#include<stdio.h>
#include<string.h>
main()
{
int n,c;   long long l;
int a[50]; long long b[50];
long long x[50],s;
int imax,max,i,j,k,r,d,rez;
memset(x,0,sizeof(x));

freopen("shop.in","r",stdin);
freopen("shop.out","w",stdout);
fscanf(stdin,"%d%d%lld",&n,&c,&l);
for(i=1;i<=n;i++)
 fscanf(stdin,"%d%lld",&a[i],&b[i]);
k=0;

do{
   max=-1;i=1;
   do{
      if(a[i]>max){max=a[i];imax=i;}
      i++;
      }while(i<=n);
   s=1;d=0;
   if(max==0)s=1;
   else {
	  do{
	     s*=c;
	     d++;
	     }while( d<a[imax] );
	 }
   d=0;
   do{
      if(s<=l){l-=s;x[imax]++;d++;}
      }while((d<b[imax])&&(s<=l));
   k++;
   a[imax]=-1;
  }while(k<n);
s=0;
for(i=1;i<=n;i++)
  s+=x[i];
fprintf(stdout,"%lld\n",s);
fprintf(stdout,"%lld",x[1]);
for(i=2;i<=n;i++)
 fprintf(stdout," %lld",x[i]);

fclose(stdin);
fclose(stdout);
}