Cod sursa(job #46725)

Utilizator za_wolfpalianos cristian za_wolf Data 2 aprilie 2007 21:41:24
Problema Shop Scor 90
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.66 kb
#include<stdio.h>
#include<math.h>
long long t[1001],x[1001],y[1001],w[1001],i,j,n,m,k,l,s,a,z;
int main()
{
	freopen("shop.in","r",stdin);
	freopen("shop.out","w",stdout);
	scanf("%lld%lld%lld",&n,&k,&m);
	for (i=1;i<=n;i++)
	{
	scanf("%lld%lld",&x[i],&y[i]);
	t[i]=i;
	}
	a=1;
	while (a)
	{
		a=0;
		for (i=1;i<n;i++)
			if (x[i]<x[i+1]) {a=x[i]; x[i]=x[i+1]; x[i+1]=a; a=y[i]; y[i]=y[i+1]; y[i+1]=a; a=t[i]; t[i]=t[i+1]; t[i+1]=a;a=1;}
	}
	for (i=1;i<=n&&m;i++)
	{
	z=0;
	while (m>=pow(k,x[i])&&y[i]>0) {m-=pow(k,x[i]);z++;y[i]--;}
	s+=z;
	w[t[i]]=z;
	}
	printf("%lld\n",s);
	for (i=1;i<=n;i++)
	printf("%lld ",w[i]);
	printf("\n");
	return 0;
}