Pagini recente » Cod sursa (job #42645) | Cod sursa (job #355554) | Cod sursa (job #1383876) | Cod sursa (job #3212086) | Cod sursa (job #1251391)
#include <fstream>
#include <math.h>
using namespace std;
struct Moneda {
int p;
int buc;
int init;
};
int main() {
ifstream in("shop.in");
ofstream out("shop.out");
int n, c, l, sol[31], total = 0;
in >> n >> c >> l;
Moneda m[n];
for (int i = 0; i < n; i++) {
in >> m[i].p >> m[i].buc;
m[i].init = i;
int k = i;
while (k > 0 && m[k].p > m[k - 1].p) {
swap(m[k], m[k - 1]);
k--;
}
}
for (int i = 0; i < n; i++) {
int aux = l / pow(c, m[i].p);
sol[m[i].init] = min(aux, m[i].buc);
total += sol[m[i].init];
l -= sol[m[i].init] * pow(c, m[i].p);
}
out << total << "\n";
for (int i = 0; i < n; i++) {
out << sol[i] << " ";
}
in.close();
out.close();
return 0;
}