Cod sursa(job #63228)

Utilizator anna_bozianuBozianu Ana anna_bozianu Data 27 mai 2007 14:53:17
Problema Shop Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.65 kb
#include<stdio.h>
long long int n,c,l,p[40],i,j,k,old[40],max[40],nr[40],sol,x[40];
int main()
{
	FILE *f,*g;
	f=fopen("shop.in","r");
	g=fopen("shop.out","w");
	fscanf(f,"%lld%lld%lld",&n,&c,&l);
	p[0]=1;while(p[i]<l){i++;p[i]=p[i-1]*c;}
	for(j=1;j<=n;j++)
	{ fscanf(f,"%lld",&k);
	  old[k]=j;
	  fscanf(f,"%lld",&max[k]);
	}
	nr[0]=l;
	for(k=32;k>=1;k--)
	{
	  if(max[k])
	   while((nr[k]<max[k])&&(nr[0]>=p[k]))
	   { nr[k]++;nr[0]-=p[k];}
	}
	for(j=0;j<=32;j++)
	if(nr[j])
	 { sol+=nr[j];
	   x[old[j]]=nr[j];
	 }
	fprintf(g,"%lld\n",sol);
	for(j=1;j<=n;j++)
	fprintf(g,"%lld ",x[j]);
	fprintf(g,"\n");
	fcloseall();
	return 0;
}