Pagini recente » Cod sursa (job #899023) | Cod sursa (job #1969558) | Cod sursa (job #1631610) | Cod sursa (job #1042472) | Cod sursa (job #37470)
Cod sursa(job #37470)
#include <cstdio>
#include <algorithm>
using namespace std;
#define LLU unsigned long long
#define MAXN 32
int N, C;
LLU L;
LLU A[MAXN]; int B[MAXN], o[MAXN];
int nr[MAXN];
int cmp( int a, int b ) { return A[a] > A[b]; }
int main()
{
freopen("shop.in", "rt", stdin);
freopen("shop.out", "wt", stdout);
scanf("%d %d %llu", &N, &C, &L);
for (int i = 0; i < N; i++)
{
int put;
scanf("%d %d", &put, B + i);
A[i] = 1;
for (int k = 0; k < put; k++)
A[i] *= C;
o[i] = i;
}
sort( o, o + N, cmp );
int NR = 0;
for (int i = 0; i < N && L; i++)
for (; A[ o[i] ] <= L && nr[ o[i] ] < B[ o[i] ]; )
L -= A[ o[i] ],
nr[ o[i] ]++, NR++;
if (L)
{
printf("-1\n");
return 0;
}
printf("%d\n", NR);
for (int i = 0; i < N; i++)
printf("%d ", nr[i]);
printf("\n");
return 0;
}