Pagini recente » Cod sursa (job #487422) | Cod sursa (job #2689143) | Cod sursa (job #2639607) | Cod sursa (job #108101) | Cod sursa (job #2081662)
#include <bits/stdc++.h>
#define ll long long
using namespace std;
ifstream in("shop.in");
ofstream out("shop.out");
struct pp{ int f,s,t;};
pp p[40];
ll n,a,sum;
int mem[40];
ll putere( ll x, ll y)
{
ll p=1;
while(y)
{
if( y%2 ) p*=x, y--;
x*=x; y/=2;
}
return p;
}
bool cmp1( pp a, pp b){return a.f > b.f;}
bool cmp2( pp a, pp b){return a.t<b.t;}
int main()
{
in >> n >> a >> sum;
for(int i=1; i<=n; i++)
{
in >> p[i].f >> p[i].s;
p[i].t = i;
p[i].f = putere(a,p[i].f);
}
sort(p+1,p+n+1,cmp1);
int i=1, ans=0;
while( sum >0)
{
while( sum-p[i].f >=0 && p[i].s)
{
sum-=p[i].f;
mem[p[i].t]++;
ans++;
p[i].s--;
}
i++;
}
out << ans <<'\n';
sort( p+1,p+n+1,cmp2);
for(int i=1; i<=n; i++) out << mem[p[i].t]<<' ';
return 0;
}