Pagini recente » Cod sursa (job #1042441) | Cod sursa (job #3265697) | Cod sursa (job #2422391) | Cod sursa (job #1690082) | Cod sursa (job #775150)
Cod sursa(job #775150)
#include <stdio.h>
#include <algorithm>
using namespace std;
#define NMAX 30
int N, C, i, j, k, sol = 0, ind[NMAX], A[NMAX], s[NMAX];
long long L, P, B[NMAX];
bool cmp(int a, int b){
return A[a] > A[b];
}
int main(){
freopen("shop.in", "r", stdin);
freopen("shop.out", "w", stdout);
scanf("%d%d%lld", &N, &C, &L);
for(i = 1; i <= N; i++){
scanf("%d%lld", &A[i], &B[i]);
ind[i] = i;
}
sort(ind + 1, ind + N +1, cmp);
for(i = 1; i <= N; i++){
P = 1;
for(j = 1; j <= A[ind[i]] && P < L; j++){
P *= C;
}
k = L / P;
if( k > B[ind[i]] ){
k = B[ind[i]];
}
L -= (k * P);
sol += k; s[ind[i]] = k;
}
printf("%d\n", sol);
for(i = N; i >= 1; i--){
printf("%d ", s[ind[i]]);
}
printf("\n");
}