Pagini recente » Cod sursa (job #768956) | Cod sursa (job #1705369) | Cod sursa (job #801406) | Cod sursa (job #805349) | Cod sursa (job #523305)
Cod sursa(job #523305)
#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;
}
}