Pagini recente » Cod sursa (job #2687675) | Cod sursa (job #2702569) | Cod sursa (job #1188263) | Cod sursa (job #2990976) | Cod sursa (job #2149447)
#include <fstream>
#include <algorithm>
#define ull unsigned long long
using namespace std;
ifstream fin("shop.in");
ofstream fout("shop.out");
ull p[33], ans[31];
struct st {int pow; ull cant; int nrcrt;};
st v[31];
bool stcompare(st lhs, st rhs) { return lhs.pow < rhs.pow; }
int main()
{
int n, i;
ull l, tip, sol = 0;
fin >> n >> tip >> l;
for(i = 0; i < n; i++) {
fin >> v[i].pow >> v[i].cant;
v[i].nrcrt = i;
}
sort(v, v + n, stcompare);
p[0] = 1;
for(i = 1; i < 33; i++)
p[i] = tip * p[i - 1];
for(i = n - 1; i > -1 && l; i--) {
ull k = l / p[v[i].pow];
k = min(k, v[i].cant);
ans[v[i].nrcrt] = k;
l -= p[v[i].pow] * k;
sol += k;
}
fout << sol << '\n';
for(i = 0; i < n; i++)
fout << ans[i] << " ";
return 0;
}