Pagini recente » Cod sursa (job #1581078) | Cod sursa (job #39561) | Cod sursa (job #1782710) | Cod sursa (job #2514589) | Cod sursa (job #775152)
Cod sursa(job #775152)
#include <stdio.h>
#include <algorithm>
using namespace std;
#define NMAX 30
int N, C, i, j, k, sol = 0;
long long L, P, s[NMAX];
struct SHOP{
long long poz, val, nr;
};
SHOP v[NMAX];
struct cmp{
bool operator()(const SHOP a, const SHOP b)
{
return a.val > b.val;
}
};
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", &j, &v[i].nr);
v[i].val = 1; v[i].poz = i;
while(j--){
v[i].val *= C;
}
}
sort(v + 1 , v + N + 1 , cmp());
for(i = 1; i <= N; i++){
k = L / v[i].val;
if( k > v[i].nr ){
k = v[i].nr;
}
L -= (k * v[i].val);
sol += k; s[v[i].poz] = k;
}
printf("%d\n", sol);
for(i = N; i >= 1; i--){
printf("%lld ", s[i]);
}
printf("\n");
}