Pagini recente » Cod sursa (job #1584238) | Cod sursa (job #2663391) | Cod sursa (job #621246) | Cod sursa (job #1116544) | Cod sursa (job #1575748)
#include <fstream>
#include <algorithm>
using namespace std;
ifstream cin("shop.in");
ofstream cout("shop.out");
const int LIM=35;
int n, c;
long long l;
struct moneda
{
long long val;
int nr, poz, cate;
} v[LIM];
bool cmp1(moneda a, moneda b)
{
return a.val>b.val;
}
bool cmp2(moneda a, moneda b)
{
return a.poz<b.poz;
}
int main()
{
cin>>n>>c>>l;
for(int i=1; i<=n; ++i)
{
int put;
cin>>put>>v[i].nr;
v[i].val=1;
for(int j=1; j<=put; ++j)
v[i].val*=c;
v[i].poz=i;
}
sort(v+1, v+n+1, cmp1);
long long ans=0;
for(int i=1; i<=n; ++i)
while(v[i].val<=l and v[i].nr>0)
{
l-=v[i].val;
v[i].nr--;
v[i].cate++;
ans++;
}
sort(v+1, v+n+1, cmp2);
cout<<ans<<'\n';
for(int i=1; i<=n; ++i)
cout<<v[i].cate<<' ';
return 0;
}