Pagini recente » Cod sursa (job #1962251) | Cod sursa (job #1324762) | Cod sursa (job #943381) | Cod sursa (job #3200798) | Cod sursa (job #1422992)
#include<cstdio>
#include<cmath>
#include<algorithm>
using namespace std;
struct eu{long long ai,bi,poz,nr;};
eu v[31];
long long k,l,m,n,p,c,i,j,sum;
bool s1(eu a,eu b)
{
return a.ai>b.ai;
}
bool s2(eu a,eu b)
{
return a.poz<b.poz;
}
int main ()
{
freopen("shop.in","r",stdin);
freopen("shop.out","w",stdout);
scanf("%lld%lld%lld",&n,&p,&l);
for(i=1;i<=n;i++)
{
scanf("%lld%lld",&v[i].ai,&v[i].bi);
v[i].poz=i;
}
sort(v+1,v+n+1,s1);
for(i=1;i<=n;i++)
{
long long nr=pow(p,v[i].ai);
if(nr*v[i].bi<=l)
{
v[i].nr=v[i].bi;
l-=nr*v[i].bi;
sum+=v[i].bi;
}
else
{
long long q;
q=l/nr;
v[i].nr=q;
l-=nr*q;
sum+=q;
}
}
sort(v+1,v+n+1,s2);
printf("%lld\n",sum);
for(i=1;i<=n;i++)
printf("%d ",v[i].nr);
return 0;
}