Pagini recente » Cod sursa (job #718934) | Cod sursa (job #2947439) | Cod sursa (job #1165722) | Cod sursa (job #2855895) | Cod sursa (job #844855)
Cod sursa(job #844855)
#include <fstream>
#include <algorithm>
#define DIM 31
using namespace std;
ifstream in("shop.in");
ofstream out("shop.out");
struct moneda
{
int pos, no_times;
long long val;
}M[DIM];
int N, C, Sol, viz[DIM];
long long L;
bool comp (const moneda &unu, const moneda &doi)
{
return unu.val > doi.val;
}
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;
viz[ M[i].pos ] = k;
}
out << Sol << '\n';
for (i = 1; i <= N; i++)
{
out << viz[i] << " ";
}
return 0;
}