Pagini recente » Cod sursa (job #618960) | Cod sursa (job #1424608) | Cod sursa (job #2058373) | Cod sursa (job #3193881) | Cod sursa (job #42807)
Cod sursa(job #42807)
#include <stdio.h>
#include <algorithm>
using namespace std;
#define ll long long
#define maxn 40
int n;
ll s,rez,b;
int p[maxn],c[maxn],a[maxn];
ll sol[maxn];
int cmp(int x,int y)
{
return a[x]>a[y];
}
int min(int a,int b)
{
if (a<b) return a;
return b;
}
int main()
{
freopen("shop.in","r",stdin);
freopen("shop.out","w",stdout);
scanf("%d %d %lld ",&n,&b,&s);
int i,j;
ll x;
for (i=1;i<=n;i++)
{
scanf("%d %d ",&a[i],&c[i]);
p[i]=i;
}
sort(p+1,p+n+1,cmp);
for (i=1;i<=n;i++)
{
x=1;
for (j=1;j<=a[p[i]];j++) x*=b;
sol[p[i]]=min(s/x,c[p[i]]);
s-=sol[p[i]]*x;
rez+=sol[p[i]];
}
printf("%lld\n",rez);
for (i=1;i<=n;i++) printf("%d ",sol[i]);
printf("\n");
return 0;
}