Pagini recente » Cod sursa (job #2349946) | Cod sursa (job #2866956) | Cod sursa (job #2063289) | Cod sursa (job #2315143) | Cod sursa (job #2243860)
#include <fstream>
#include <cmath>
#include <algorithm>
using namespace std;
int N, C, R;
long long L;
struct bani{
long long a, b;
int tip, fv;
};
bani v[30];
bool compVal(bani a, bani b){
if (a.a>b.a)
return false;
return true;
}
bool compTip(bani a, bani b){
if (a.tip>b.tip)
return false;
return true;
}
int main(){
int i;
ifstream fin ("shop.in");
fin >> N >> C >> L;
for (i=0; i<N; i++){
fin >> v[i].a >> v[i].b;
v[i].tip=i;
v[i].a=1LL*pow(C, v[i].a);
}
fin.close();
sort(v, v+N, compVal);
for (i=N-1; i>=0; i--){
v[i].fv=min(L/v[i].a, v[i].b);
R+=v[i].fv;
L-=v[i].fv*v[i].a;
}
sort(v, v+N, compTip);
ofstream fout ("shop.out");
fout << R << '\n';
for (i=0; i<N; i++)
fout << v[i].fv << ' ';
fout.close();
return 0;
}