Pagini recente » Cod sursa (job #507955) | Cod sursa (job #2690750) | Cod sursa (job #374460) | Cod sursa (job #2298254) | Cod sursa (job #36552)
Cod sursa(job #36552)
#include <stdio.h>
#include <algorithm>
using namespace std;
#define MAX_N 32
#define FIN "shop.in"
#define FOUT "shop.out"
#define mp make_pair
#define f first
#define s second
int N, C, Res, sol[MAX_N]; long long L;
pair< pair<long long, int>, int > coin[MAX_N];
int main(void)
{
int i, a, b, cnt;
long long p;
freopen(FIN, "r", stdin);
freopen(FOUT, "w", stdout);
scanf("%d %d %lld", &N, &C, &L);
for (i = 0; i < N; i++)
{
scanf("%d %d", &a, &b);
for (p = 1; a; a--) p *= C;
coin[i] = mp(mp(p, b), i);
}
sort(coin, coin+N);
for (i = N-1; i >= 0; i--)
{
cnt = L / coin[i].f.f;
L -= cnt*coin[i].f.f;
sol[coin[i].s] = cnt;
Res += cnt;
}
printf("%d\n", Res);
for (i = 0; i < N; i++)
printf("%d ", sol[i]);
printf("\n");
return 0;
}