Pagini recente » Cod sursa (job #1724659) | Cod sursa (job #1472745) | Cod sursa (job #2389658) | Cod sursa (job #235314) | Cod sursa (job #349464)
Cod sursa(job #349464)
#include<stdio.h>
#include<algorithm>
using namespace std;
struct vect
{
long long x;
int nr;
};
int n,x,rez;
long long suma;
vect v[40];
int sol[40];
int ind[40];
int comp(int i, int j)
{
if(v[i].x>v[j].x)
return 1;
return 0;
}
int main()
{
freopen("shop.in","r",stdin);
freopen("shop.out","w",stdout);
scanf("%d%d%lld",&n,&x,&suma);
int i,nr,j;
for(i=1;i<=n;i++)
{
ind[i]=i;
v[i].x=1;
scanf("%d%d",&nr,&v[i].nr);
for(j=1;j<=nr && v[i].x<=suma;j++)
v[i].x*=x;
}
sort(ind+1,ind+n+1,comp);
for(i=1;i<=n;i++)
{
sol[ind[i]]=suma/v[ind[i]].x;
suma=suma-sol[ind[i]]*v[ind[i]].x;
if(sol[ind[i]]>v[ind[i]].nr)
{
suma=suma+v[ind[i]].x*(sol[ind[i]]-v[ind[i]].nr);
sol[ind[i]]=v[ind[i]].nr;
}
rez=rez+sol[ind[i]];
}
printf("%d\n",rez);
for(i=1;i<=n;i++)
printf("%d ",sol[i]);
return 0;
}