Cod sursa(job #37692)

Utilizator FlorianFlorian Marcu Florian Data 25 martie 2007 11:59:26
Problema Shop Scor 0
Compilator cpp Status done
Runda preONI 2007, Runda 4, Clasa a 9-a si gimnaziu Marime 0.77 kb
#include<stdio.h>
int main()
{long long unsigned n,s,p,x[100001],ok,aux,c,l,y[100001],k,i,j,a[100001],b[100001],kmax=0;
FILE *f=fopen("shop.in","r");
FILE *g=fopen("shop.out","w");
fscanf(f,"%llu %llu %llu",&n,&c,&l);
for (i=1;i<=n;i++)
	{fscanf(f,"%llu %llu",&x[i],&y[i]);
	a[i]=i;}
do
	{ok=0;
	for (i=1;i<=n-1;i++)
		if (x[i]<x[i+1]){aux=x[i]; x[i]=x[i+1]; x[i+1]=aux; aux=y[i]; y[i]=y[i+1];y[i+1]=aux; aux=a[i]; a[i]=a[i+1]; a[i+1]=aux;ok=1;}}while (ok==1);
s=0;
for (i=1;i<=n;i++)
	{k=0;
	while (k<y[i])
		{p=1;
		for (j=1;j<=x[i];j++)
		 p*=c;
		 if (s+p<l) {s+=p; k++;kmax++;}
		 else if (s==p) {s+=p;k++;kmax++;break;}
		 else break;}
	b[a[i]]=k;}
fprintf(g,"%llu\n",kmax);
for (i=1;i<=n;i++) fprintf(g,"%llu ",b[i]);
fclose(f);
fclose(g);
return 0;}