Cod sursa(job #338845)

Utilizator Anamaria20Cotirlea Anamaria Anamaria20 Data 7 august 2009 09:54:02
Problema Shop Scor 60
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.76 kb
#include <stdio.h>
#include <algorithm>

using namespace std;

FILE *f,*s;

int n,a,b,i,k,cate,rez[50];

struct moneda
{
	int x;
	int y;
	int z;
};

moneda v[30];

int cmp(moneda a, moneda b)
{
	return a.x>b.x;
}	

int main()
{
	f=fopen("shop.in","r");
	s=fopen("shop.out","w");
	
	fscanf(f,"%d %d %d",&n,&a,&b);
	
	for(i=1;i<=n;i++)
	{
		fscanf(f,"%d %d",&v[i].x,&v[i].y);	
		
		k=1;
		while(v[i].x)
		{
			k*=a;
			v[i].x--;
		}	
		
		v[i].x=k;
		v[i].z=i;
	}	
	
	sort(v+1,v+n+1,cmp);
	
	for(i=1;i<=n;i++)
	{
		rez[v[i].z]=min(b/v[i].x,v[i].y);
		
		cate+=min(b/v[i].x,v[i].y);
		
		b-=rez[v[i].z]*v[i].x;
	}	
	
	fprintf(s,"%d\n",cate);
	
	for(i=1;i<=n;i++)
		fprintf(s,"%d ",rez[i]);
		
	
	fclose(s);
	
	return 0;
}