Cod sursa(job #2243860)

Utilizator eilerGabriel-Ciprian Stanciu eiler Data 21 septembrie 2018 16:00:29
Problema Shop Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.81 kb
#include <fstream>
#include <cmath>
#include <algorithm>
using namespace std;

int N, C, R;
long long L;

struct bani{
	long long a, b;
	int tip, fv;
};

bani v[30];

bool compVal(bani a, bani b){
	if (a.a>b.a)
		return false;
	return true;
}

bool compTip(bani a, bani b){
	if (a.tip>b.tip)
		return false;
	return true;
}

int main(){
	int i;

	ifstream fin ("shop.in");
	fin >> N >> C >> L;
	for (i=0; i<N; i++){
		fin >> v[i].a >> v[i].b;
		v[i].tip=i;
		v[i].a=1LL*pow(C, v[i].a);
	}
	fin.close();

	sort(v, v+N, compVal);

	for (i=N-1; i>=0; i--){
		v[i].fv=min(L/v[i].a, v[i].b);
		R+=v[i].fv;
		L-=v[i].fv*v[i].a;
	}

	sort(v, v+N, compTip);

	ofstream fout ("shop.out");
	fout << R << '\n';
	for (i=0; i<N; i++)
		fout << v[i].fv << ' ';
	fout.close();

	return 0;
}