Cod sursa(job #741333)

Utilizator harababurelPuscas Sergiu harababurel Data 25 aprilie 2012 21:01:05
Problema Shop Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.95 kb
#include <iostream>
#include <fstream>
#include <math.h>
using namespace std;
long long ridica_la_putere(int a, int b) {
	long long rez=1;
	int i;
	for(i=1; i<=b; i++) rez*=a;
	
	return rez;
}
int main() {
	ifstream f("shop.in");
	ofstream g("shop.out");
	
	long long n, l, c, i, max=1, folosite[35];
	int v[35][2];				//v[i][1] ii Ai (puterea)
								//v[i][2] ii Bi (nr de monede)
	
	f>>n>>c>>l;
	for(i=1; i<=n; i++) {
		f>>v[i][1]>>v[i][2];
		v[i][1] = ridica_la_putere( c, v[i][1] );
		folosite[i]=0;
		
	}

	while(l>0) {
		max=1;
		for(i=2; i<=n; i++) {
			if(v[i][1] >= v[max][1] && v[i][1] <= l && v[i][2] > 0) max=i;
		}	
		
		//cout<<l<<" ";
		
		
		while(l >= v[max][1] && v[max][2]>0) {
			v[max][2]--;
			l-=v[max][1];
			folosite[max]++;
		}
	}
	
	long long s=0;
	for(i=1; i<=n; i++)	s+=folosite[i];
	g<<s<<"\n";
	for(i=1; i<=n; i++) g<<folosite[i]<<" ";
	g<<"\n";
	
	
	f.close();
	g.close();
	return 0;
}