Cod sursa(job #39632)

Utilizator pocaituDavid si Goliat pocaitu Data 26 martie 2007 21:26:01
Problema Shop Scor 40
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.7 kb
#include<stdio.h>
#define nmax 100
long long pow(long a,long b) {long long p=1,i; for(i=1;i<=b;i++) p*=a; return p;}
long long l;
long s[nmax],nr,a[nmax],viz[nmax],max,b[nmax],c,n,i,j;
int main()
{freopen("shop.in","r",stdin);
 scanf("%ld%ld%lld",&n,&c,&l);
 for(i=1;i<=n;i++)
  scanf("%ld%ld",&a[i],&b[i]);
 while(l)
  {for(i=1,max=-1;i<=n;i++)
	if(!viz[i]&&a[i]>max&&pow(c,a[i])<=l)
	  {
	  max=a[i];
	  j=i;
	  }
   i=j;
   j=1;
   while(j*pow(c,a[i])<=l&&j<=b[i]) j++;
   viz[i]=1;
   j--;
   s[i]=j;
   l-=j*(pow(c,a[i]));
   nr+=j;
   }
 freopen("shop.out","w",stdout);
 printf("%ld\n",nr);
 for(i=1;i<=n;i++)
   if(s[i]) printf("%ld ",s[i]);
 fclose(stdout);
 return 0;
 }