Cod sursa(job #480894)

Utilizator marta_diannaFII Filimon Marta Diana marta_dianna Data 29 august 2010 23:43:13
Problema Shop Scor 90
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.91 kb
#include<fstream>
#include<algorithm>
#define NMAX 30

using namespace std;

struct shop{
	int a; int b; int o; int fr;long long val;
}x[NMAX];
int n, c, i, j;
long long L, nr;

int cmp(shop w, shop u)
{
	return w.a<u.a;
}

int cmp1(shop w, shop u)
{
	return w.o<u.o;
}

int minim(long long w, long long u)
{
	if (w<u) return w;
	return u;
}

int main()
{
	ifstream f("shop.in");
	ofstream g("shop.out");
	
	f>>n>>c>>L;
	for(i=1; i<=n; ++i)
	{
		f>>x[i].a>>x[i].b;
		x[i].o=i;
	}
	
	sort(x+1, x+n+1, cmp);
	x[0].a=0;x[0].val=1;
	for(i=1; i<=n; ++i)
	{
		x[i].val=x[i-1].val;
		for(j=x[i-1].a+1; j<=x[i].a; ++j) x[i].val*=c;
	}
	
	for(i=n; i>=1; i--)
	{
		x[i].fr=minim(x[i].b, L/x[i].val);
		nr+=x[i].fr;
		L-=x[i].fr*x[i].val;
	}
	
	sort(x+1, x+n+1, cmp1);
	
	g<<nr<<"\n"<<x[1].fr;
	
	for(i=2; i<=n; ++i) g<<" "<<x[i].fr;
	g<<"\n";
	f.close();
	g.close();
	return 0;
}