Pagini recente » Cod sursa (job #2416104) | Cod sursa (job #1409525) | Cod sursa (job #2141308) | Cod sursa (job #1219752) | Cod sursa (job #1805379)
#include <cstdio>
#include <algorithm>
using namespace std;
long long v[100];
long long b[100];
long long tt[100];
long long sol[10000];
long long put( long long a, long long bb ){
long long p = 1;
while( bb > 0 ){
if( bb % 2 == 1 ){
p *= a;
bb--;
}
a *= a;
bb /= 2;
}
return p;
}
int main()
{
freopen("shop.in","r",stdin);
freopen("shop.out","w",stdout);
long long n, i, j, s, t, dt, k, l, ma;
scanf("%lld%lld%lld",&n,&k,&s);
for( i = 1; i <= n; ++i ){
scanf("%lld%lld",&v[i],&b[i]);
tt[i] = i;
}
for( i = 1; i < n; ++i ){
for( j = i + 1; j <= n; ++j )
if( v[i] > v[j] ){
swap(v[i],v[j]);
swap(b[i],b[j]);
swap(tt[i],tt[j]);
}
}
l = 0;
for( i = n; i >= 1; --i ){
dt = put(k,v[i]);
while( dt <= s && b[i] ){
s -= dt;
b[i]--;
sol[tt[i]]++;
l++;
//i = - (1<<23);
}
}
printf("%lld\n",l);
for( i = 1; i <= 100; ++i ){
if( sol[i] > 0 ) printf("%lld ",sol[i]);
}
return 0;
}