Pagini recente » Cod sursa (job #2343159) | Cod sursa (job #2525877) | Cod sursa (job #1545034) | Cod sursa (job #923593) | Cod sursa (job #1447575)
#include <algorithm>
#include <fstream>
#define NMAX 50
using namespace std;
ifstream f("shop.in");
ofstream g("shop.out");
struct elem {long long p , poz , nr ;} v[NMAX];
long long n , c , l , sol[NMAX] , sum ;
bool comp(elem a , elem b){
return a.p > b.p;
}
long long putere(long long poz){
long long i , nr = 1;
for(i = 1 ; i <= v[poz].p ; ++i){
nr *= c;
}
return nr;
}
int main()
{
long long i ;
f >> n >> c >> l;
for(i = 1 ; i <= n ; ++i){
f >> v[i].p >> v[i].nr;
v[i].poz = i ;
}
sort(v + 1 , v + n + 1 , comp);
for(i = 1 ; i <= n ; ++i){
sol[v[i].poz] = min(v[i].nr , l/putere(i));
long long x = sol[v[i].poz] * putere(i);
l -= x;
sum += sol[v[i].poz];
}
g << sum << '\n' ;
for(i = 1 ; i <= n ; ++i){
g << sol[i] << " " ;
}
return 0;
}