Pagini recente » Cod sursa (job #3038846) | Cod sursa (job #296413) | Cod sursa (job #2904039) | Cod sursa (job #1189544) | Cod sursa (job #844848)
Cod sursa(job #844848)
#include <fstream>
#include <algorithm>
#include <cmath>
#define DIM 31
using namespace std;
ifstream in("shop.in");
ofstream out("shop.out");
struct moneda
{
int pos, A, B;
}M[DIM];
int N, C, Sol;
long long L;
bool comp (const moneda &unu, const moneda &doi)
{
return unu.A > doi.A;
}
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;
in >> N >> C >> L;
for (i = 1; i <= N; i++)
{
in >> M[i].A >> M[i].B;
M[i].pos = i;
}
sort(M + 1, M + N + 1, comp);
for (i = 1; i <= N; i++)
{
long long var = pow(C, M[i].A);
k = minim(M[i].B, L/var);
L -= (long long)(k*var);
M[i].B = k;
Sol += k;
}
sort(M + 1, M + N + 1, comp2);
out << Sol << '\n';
for (i = 1; i <= N; i++)
{
out << M[i].B << " ";
}
return 0;
}