Cod sursa(job #427376)

Utilizator pykhNeagoe Alexandru pykh Data 27 martie 2010 20:17:59
Problema Shop Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.83 kb
#include<stdio.h>
#include<algorithm>
using namespace std;
#define ll long long
const char in[]="shop.in", out[]="shop.out";
const int Nmax = 32;
struct init{ll val, nr, poz;} v[Nmax];
ll N, C, L, x, sol[Nmax], sum;

struct cmp{
	bool operator()(const init a, const init b)
	{
		return a.val > b.val;
	}
};

int main()
	{
		freopen(in,"r",stdin);
		freopen(out,"w",stdout);
		scanf("%lld%lld%lld", &N, &C, &L);
		for( ll i = 1 ; i <= N ; ++i )
			{
			scanf("%lld%lld", &x, &v[i].nr);
			v[i].val = 1;
			while(x--) v[i].val *= C;
			v[i].poz = i;
		}
		sort(v + 1 , v + N + 1 , cmp());
		for( ll i = 1 ; i <= N ; ++i)
		{
			x = min( L/ v[i].val, v[i].nr);
			sol[v[i].poz] = x;
			sum += x;
			L -= (x * v[i].val);
			
		}
		printf("%lld\n", sum);
		for( ll i = 1 ; i <= N ; ++i)
			printf("%lld ", sol[i]);
}