Cod sursa(job #775152)

Utilizator caliuxSegarceanu Calin caliux Data 7 august 2012 13:51:09
Problema Shop Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.82 kb
#include <stdio.h>
#include <algorithm>

using namespace std;

#define NMAX 30

int N, C, i, j, k, sol = 0;
long long L, P, s[NMAX];

struct SHOP{
	long long poz, val, nr;
};
SHOP v[NMAX];
struct cmp{
bool operator()(const SHOP a, const SHOP b)
{
return a.val > b.val;
}
};

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