Pagini recente » Cod sursa (job #2332369) | Cod sursa (job #213421) | Cod sursa (job #706467) | Cod sursa (job #389540) | Cod sursa (job #2073122)
#include <iostream>
#include <fstream>
#include <vector>
using namespace std;
ifstream fin("shop.in");
ofstream fout("shop.out");
int n, c;
unsigned long long l;
unsigned long long sum;
unsigned long long values[33];
vector <int> input;
int coins[33];
int used[33];
int total;
int main() {
fin >> n >> c >> l;
for (int i = 0; i < n; ++i) {
int x, y;
fin >> x >> y;
coins[x] = y;
input.push_back(x);
}
values[0] = 1;
for (int i = 1 ; i < 33; ++i) {
values[i] = values[i - 1] * c;
}
for (int i = 32; i >= 0; --i) {
if (coins[i] == 0)
continue;
while (sum + values[i] <= l && coins[i] > 0) {
sum += values[i];
coins[i]--;
used[i]++;
total++;
}
if (sum == l) {
fout << total << '\n';
for (int j = 0; j < input.size(); ++j) {
fout << used[input[j]] << ' ';
}
break;
}
}
fin.close();
fout.close();
return 0;
}