Pagini recente » Cod sursa (job #3150408) | Cod sursa (job #1133766) | Cod sursa (job #956853) | Cod sursa (job #2044019) | Cod sursa (job #1517949)
#include <cstdio>
#include <algorithm>
using namespace std;
#define long long int
#define lld d
int v[100];
int b[100];
int tt[100];
int sol[10000];
int put( int a, int bb ){
int 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);
int n, i, j, s, t, dt, k, l, ma;
scanf("%d%d%d",&n,&k,&s);
for( i = 1; i <= n; ++i ){
scanf("%d%d",&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("%d\n",l);
for( i = 1; i <= 100; ++i ){
if( sol[i] > 0 ) printf("%d ",sol[i]);
}
return 0;
}