Cod sursa(job #873298)

Utilizator superman_01Avramescu Cristian superman_01 Data 7 februarie 2013 01:01:31
Problema Shop Scor 90
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.93 kb
#include<cstdio>
#include<algorithm>
#include<math.h>
#include<fstream>

#define MAX_N 150




using namespace std;
ifstream f("shop.in");
ofstream g("shop.out");

long long int v[MAX_N],l,v1[MAX_N],ind[MAX_N],used[MAX_N],number;
int n,c;

long long cmp(long long  i,long long j)
{
	return v[i]>v[j];	
}


inline void solve( void )
{
	sort(ind+1,ind+n+1,cmp);
	
	for(long long index(1); index <= n ;  ++index)
	{
		if(l==0)
			break;
		while( v1[ind[index]] && l >= pow(c,v[ind[index]])  )
		{
			l-=1LL*pow( c , v[ind[index]] );
			used[ind[index]]++;
			number++;
			v1[ind[index]]--;
		}
		
		
	}
	
	
}



inline void write( void )
{
	g<<number<<"\n";
	for(int i(1); i <= n ; ++i)
		g<<used[i]<<" ";
	
	
}

int main( void )
{
	
	
	f>>n>>c>>l;
	for( long long index(1); index <=  n ; ++index)
		{
			f>>v[index]>>v1[index];
			ind[index]=index;
		}
	solve();
	write();
	return 0;
}