Cod sursa(job #802095)

Utilizator scipianusFMI Ciprian Olariu scipianus Data 25 octombrie 2012 20:30:04
Problema Shop Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.73 kb
#include<fstream>
#include<algorithm>
using namespace std;
int n,C;
long long L,sol[33],total;
struct Moneda{int ind; long long val,nr;};
Moneda v[33];

inline bool Sortare(Moneda A,Moneda B)
{
	return A.val>B.val;
}

int main()
{
	int i,put;
	long long used;
	ifstream fin("shop.in");
	fin>>n>>C>>L;
	for(i=1;i<=n;i++)
	{
		fin>>put>>v[i].nr;
		v[i].val=1LL;
		while(put--)
			v[i].val*=C;
		v[i].ind=i;
	}
	fin.close();
	
	sort(v+1,v+n+1,Sortare);
	for(i=1;i<=n && L;i++)
	{
		used=min(v[i].nr,L/v[i].val);
		sol[v[i].ind]=used;
		L-=used*v[i].val;
		total+=used;
	}
	
	ofstream fout("shop.out");
	fout<<total<<"\n";
	for(i=1;i<=n;i++)
		fout<<sol[i]<<' ';
	fout<<"\n";
	fout.close();
	return 0;
}