Cod sursa(job #735331)

Utilizator robertpoeRobert Poenaru robertpoe Data 16 aprilie 2012 08:49:16
Problema Shop Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.75 kb
#include<algorithm>
#include<fstream>
#define nr second.first
#define xxl long long
#define ind second.second
#define PP pair //scurtez scrierea:D
#define min(a,b) (a)>(b)?(b):(a)
using namespace std;
ifstream f("shop.in");
ofstream g("shop.out");
PP<int,PP<int,int> > A[100];
xxl c,s,p=1,i,n,nlr,k=1;
xxl FOR[100],final[100];
inline int comp(int a,int b)
{
	return a<b;
}
int main()
{
	f>>n>>c>>s;
	for(i=1;i<=n;i++)
		f>>A[i].first>>A[i].nr,A[i].ind=i;
	sort(A+1,A+n+1);
	for(i=0;i<=A[n].first;i++)
	{
		if(i==A[k].first)
			FOR[k++]=p;
		p*=c;
	}
	for(i=n;i&&s;i--)
	{
		final[A[i].ind]=min(A[i].nr,s/FOR[i]);
		s-=final[A[i].ind]*FOR[i];
		nlr+=final[A[i].ind];
	}
	g<<nlr<<'\n';
	for(i=1;i<=n;i++)
		g<<final[i]<<" ";
	return 0;
}