Pagini recente » Cod sursa (job #2580854) | Cod sursa (job #618647) | Cod sursa (job #1174696) | Cod sursa (job #2583423) | Cod sursa (job #1375709)
#include<cstdio>
#include<algorithm>
#include<cstring>
#define Nmax 35
using namespace std;
int n,i,j;
long long c,l;
int b[Nmax],w[Nmax],a,m;
struct nod
{
int x;
int 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("%d %lld %lld",&n,&c,&l);
for (i=1;i<=n;i++)
{
scanf("%d %d",&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("%d\n",m);
for (i=1;i<=n;i++)
printf("%d ",w[i]);
return 0;
}