Pagini recente » Cod sursa (job #2167780) | Cod sursa (job #1426317) | Cod sursa (job #1944938) | Cod sursa (job #473578) | Cod sursa (job #427376)
Cod sursa(job #427376)
#include<stdio.h>
#include<algorithm>
using namespace std;
#define ll long long
const char in[]="shop.in", out[]="shop.out";
const int Nmax = 32;
struct init{ll val, nr, poz;} v[Nmax];
ll N, C, L, x, sol[Nmax], sum;
struct cmp{
bool operator()(const init a, const init b)
{
return a.val > b.val;
}
};
int main()
{
freopen(in,"r",stdin);
freopen(out,"w",stdout);
scanf("%lld%lld%lld", &N, &C, &L);
for( ll i = 1 ; i <= N ; ++i )
{
scanf("%lld%lld", &x, &v[i].nr);
v[i].val = 1;
while(x--) v[i].val *= C;
v[i].poz = i;
}
sort(v + 1 , v + N + 1 , cmp());
for( ll i = 1 ; i <= N ; ++i)
{
x = min( L/ v[i].val, v[i].nr);
sol[v[i].poz] = x;
sum += x;
L -= (x * v[i].val);
}
printf("%lld\n", sum);
for( ll i = 1 ; i <= N ; ++i)
printf("%lld ", sol[i]);
}