Pagini recente » Cod sursa (job #117406) | Cod sursa (job #1766100) | Cod sursa (job #874137) | Cod sursa (job #1421429) | Cod sursa (job #1220646)
#include <fstream>
#include <algorithm>
#define DIMN 35
using namespace std;
ifstream f("shop.in");
ofstream g("shop.out");
struct data {
long long a;
long long b;
long long poz;
} v[DIMN];
long long n, nn, l, c, p, k, sol;
long long P[DIMN], R[DIMN];
long long minim (long long x, long long y) {
return ( x<y ? x : y );
}
bool cmp (const data &a, const data &b) {
return b.a < a.a;
}
int main () {
f >> n >> c >> l;
p = 1;
while (p<=l && k<=33) {
P[k++] = p;
p *= c;
}
for (int i=1; i<=n; ++i) {
f >> v[i].a >> v[i].b;
v[i].poz = i;
}
sort (v+1, v+n+1, cmp);
for (int i=1; i<=n && l!=0; ++i) {
nn = minim (l/P[v[i].a],v[i].b);
R[v[i].poz] = nn;
sol += nn;
l -= nn * P[v[i].a];
}
g << sol << "\n";
for (int i=1; i<=n; ++i)
g << R[i] << " ";
return 0;
}