Cod sursa(job #41285)

Utilizator webspiderDumitru Bogdan webspider Data 28 martie 2007 09:40:46
Problema Shop Scor 40
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.89 kb
#include <stdio.h>
#include <vector>
#include <algorithm>

using namespace std;

long long l;

long long nr[41];
int ind[41];
int ap[41];
int fol[41];

int c;
int i;
int n, nmon;

inline long long pow( int a, int n )
{
	int r = 1;
	for ( int i = 1; i <= n; ++i )
		r *= a;
	return r;
}

bool cmpf( const int &a, const int &b ) {
	return ( nr[a] > nr[b] );
}


int main()
{
	freopen("shop.in","r",stdin);
	freopen("shop.out","w",stdout);

	scanf("%d %d %Ld\n", &n, &c, &l);

	for ( i = 1; i <= n; i++ ) {
		scanf("%Ld %d\n", &nr[i], &ap[i] );

		nr[i] = pow( c, nr[i] );
		ind[i] = i;
	}

	sort( ind+1, ind+n+1, cmpf );
	
	i = 1;

	while ( l ) {
		++nmon;
		if ( ap[ ind[i] ] == fol[ ind[i] ] || nr[ ind[i] ] > l ) ++i;

		l -= nr[ ind[i] ];
		fol[ ind[i] ]++;
	}

	printf("%d\n", nmon );

	for ( i = 1; i <= n; ++i )
		printf("%d ", fol[i] );
	printf("\n");

	fclose(stdin);
	fclose(stdout);

	return 0;
}