Pagini recente » Cod sursa (job #1219423) | Cod sursa (job #2602712) | Cod sursa (job #599198) | Cod sursa (job #74361) | Cod sursa (job #1389169)
#include <fstream>
#include <cmath>
#include <algorithm>
using namespace std;
ifstream f("shop.in");
ofstream g("shop.out");
struct bani{
int put, cant, cant_init;
short ord_init;
long long int val;
};
bani b[33];
int n, i, j, c;
long long s, cnt;
int cmp(bani x, bani y)
{ return x.put > y.put; }
int cmp1(bani x, bani y)
{ return x.ord_init < y.ord_init; }
int main()
{
f >> n >> c >> s;
for (i = 1; i <= n; i++)
{
f >> b[i].put >> b[i].cant_init;
b[i].cant = b[i].cant_init;
b[i].val = pow(c, b[i].put);
b[i].ord_init = i;
//g << b[i].val << " ";
}
sort (b+1, b+n+1, cmp);
for (i = 1; i <= n && s > 0; i++)
while (s - b[i].val >= 0 && b[i].cant)
s -= b[i].val, b[i].cant--, cnt++;
sort (b+1, b+n+1, cmp1);
g << cnt << "\n";
for (i = 1; i <= n; i++)
g << b[i].cant_init - b[i].cant << " ";
return 0;
}