Pagini recente » Cod sursa (job #526387) | Cod sursa (job #1808042) | Cod sursa (job #2349595) | Cod sursa (job #2736172) | Cod sursa (job #1413038)
#include<cstdio>
#include<algorithm>
#include<cstring>
#define Nmax 35
using namespace std;
long long n,i,j;
long long c,l;
long long b[Nmax],w[Nmax],a,m;
struct nod
{
long long x;
long long y;
}v[Nmax];
int cmp(const nod a,const nod b)
{
return a.x<b.x;
}
int main()
{
freopen("shop.in","r",stdin);
freopen("shop.out","w",stdout);
scanf("%lld %lld %lld",&n,&c,&l);
for (i=1;i<=n;i++)
{
scanf("%lld %lld",&a,&b[i]);
v[i].x=1;
for (j=1;j<=a;j++)
v[i].x=v[i].x*c;
v[i].y=i;
}
sort(v+1,v+n+1,cmp);
i=n;
while (l)
{
if (l/v[i].x>b[v[i].y])
l=l-(b[v[i].y]*v[i].x),w[v[i].y]=b[v[i].y],m=m+b[v[i].y];
else w[v[i].y]=l/v[i].x,m=m+(l/v[i].x),l=l%v[i].x;
i--;
}
printf("%lld\n",m);
for (i=1;i<=n;i++)
printf("%lld ",w[i]);
return 0;
}