Pagini recente » Cod sursa (job #1457830) | Cod sursa (job #101263) | Cod sursa (job #543609) | Cod sursa (job #3132197) | Cod sursa (job #844854)
Cod sursa(job #844854)
#include <fstream>
#include <algorithm>
#define DIM 31
using namespace std;
ifstream in("shop.in");
ofstream out("shop.out");
struct moneda
{
int pos, val, no_times;
}M[DIM];
int N, C, Sol;
long long L;
bool comp (const moneda &unu, const moneda &doi)
{
return unu.val > doi.val;
}
bool comp2 (const moneda &unu, const moneda &doi)
{
if (unu.pos > doi.pos) return unu.pos < doi.pos;
}
int minim (int a, int b)
{
if (a < b) return a;
else return b;
}
int main()
{
int i, k, A;
in >> N >> C >> L;
for (i = 1; i <= N; i++)
{
in >> A >> M[i].no_times;
M[i].pos = i;
M[i].val = 1;
for (int j = 1; j <= A; j++)
{
M[i].val *= C;
}
}
sort(M + 1, M + N + 1, comp);
for (i = 1; i <= N && L; i++)
{
k = minim(M[i].no_times, L/M[i].val);
L -= (long long)(k*M[i].val);
M[i].no_times = k;
Sol += k;
}
sort(M + 1, M + N + 1, comp2);
out << Sol << '\n';
for (i = 1; i <= N; i++)
{
out << M[i].no_times << " ";
}
return 0;
}