Cod sursa(job #873281)

Utilizator superman_01Avramescu Cristian superman_01 Data 7 februarie 2013 00:23:11
Problema Shop Scor 60
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.9 kb
#include<cstdio>
#include<algorithm>
#include<math.h>

#define MAX_N 35

FILE *f=fopen("shop.in","r");
FILE *g=fopen("shop.out","w");

using namespace std;

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

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


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



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

int main( void )
{
	
	
	fscanf(f,"%d%d%d",&n,&c,&l);
	for( int index(1); index <=  n ; ++index)
		{
			fscanf(f,"%d%d",&v[index],&v1[index]);
			ind[index]=index;
		}
	solve();
	write();
	return 0;
}