Cod sursa(job #523305)

Utilizator bora_marianBora marian bora_marian Data 17 ianuarie 2011 18:48:48
Problema Shop Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.87 kb
#include<fstream>
using namespace std;
int A[35],maxim,poz[35],afis[35];
long long L,C,N,putere[35],sol[35],nrmon;
void solve();
int main()
{
	ifstream fin("shop.in");
	ofstream fout("shop.out");
	fin>>N>>C>>L;
	int i;
	for(i=1;i<=N;i++)
	{   
	   int a,b;
	   fin>>a>>b;
	   A[a]=b;
	   poz[a]=i;
	   if(a>maxim)
	      maxim=a;
    }
    putere[0]=1;
    for(i=1;i<=maxim;i++)
       putere[i]=putere[i-1]*C;
    solve();
    for(i=0;i<=maxim;i++)
        if(sol[i]!=-1)
           afis[poz[i]]=sol[i];
    fout<<nrmon<<"\n";
    for(i=1;i<=N;i++)
        if(afis[i]!=-1) 
         fout<<afis[i]<<" ";       
    return 0; 
}   
void solve()
{
	int i;
	for(i=maxim;i>=0;i--)
	{
		afis[i]=-1;
		if(A[i]>0)
		{
		   int nr=0;
		   while(L-putere[i]>=0 && A[i]>0)
		      nr++,L-=putere[i],A[i]--;
		   sol[i]=nr;
		   nrmon+=nr;
	     }
	     else
	       sol[i]=-1;
	 }   
		       
}