Cod sursa(job #775150)

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

using namespace std;

#define NMAX 30

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

bool cmp(int a, int b){
	return A[a] > A[b];
}

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", &A[i], &B[i]);
		ind[i] = i;
	}
	sort(ind + 1, ind + N +1, cmp);
	for(i = 1; i <= N; i++){
		P = 1;
		for(j = 1; j <= A[ind[i]] && P < L; j++){
			P *= C;
		}
		k = L / P;
		if( k > B[ind[i]] ){
			k = B[ind[i]];
		}
		L -= (k * P);
		sol += k; s[ind[i]] = k;
	}
	printf("%d\n", sol);
	for(i = N; i >= 1; i--){
		printf("%d ", s[ind[i]]);
	}
	printf("\n");
}