Cod sursa(job #760302)

Utilizator titusuTitus C titusu Data 20 iunie 2012 21:16:30
Problema Shop Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.8 kb
using namespace std;

#include <iostream>
#include <fstream>

long long int n, C, L, a[50], b[50], v[50];

int index[50];

ifstream fin("shop.in");
ofstream fout("shop.out");

int main(){
	fin >> n >> C >> L;
	for(int i=1;i<=n;++i){
		index[i] = i;
		fin >> a[i] >> b[i];
		v[i] = 1;
		for(int j=1;j<=a[i];++j)
			v[i] *= C;
	}
	for(int i=1;i<n;++i)
		for(int j=i+1;j<=n;++j)
			if(v[index[i]]<v[index[j]]){
				int aux;
				aux = index[i], index[i]=index[j], index[j] = aux;

			}
	for(int i =1;i<=n;++i)
		a[i] = 0;
	long long int s=0;
	for(int i=1;L>0 && i<=n;++i){
		long long int t = L/v[index[i]] , rez;
		if ( t < b[ index[i] ] )
			rez = t;
		else
			rez = b[ index[i] ];
		a[index[i]] = rez;
		s += rez;
		L -= rez * v[index[i]];
	}
	fout << s << "\n";
	for(int i=1;i<=n;++i)
		fout << a[i] << " ";
	return 0;

}