Pagini recente » Cod sursa (job #2325768) | Cod sursa (job #1162269) | Cod sursa (job #576036) | Cod sursa (job #2159418) | Cod sursa (job #1242435)
#include <fstream>
#include <cmath>
#include <iostream>
#include <algorithm>
using namespace std;
typedef long long big;
ifstream f("shop.in");
ofstream g("shop.out");
int N,C;
big L,S;
struct plata{
int a;
int b;
int poz;
} A[31] ;
int sol[31];
inline bool cmp(plata A, plata B)
{
return A.a > B.a;
}
int main()
{
f >> N >> C >> L ;
for (int i=1;i<=N;i++)
{
f >> A[i].a >> A[i].b;
A[i].poz = i;
}
sort (A+1,A+N+1,cmp);
S = 0;
for (int i=1; i<= N ; i++)
{
int k = 0;
k = min( (big)A[i].b, L / (big)pow(C,A[i].a) );
S += k;
L -= k * (big)pow(C,A[i].a);
sol[A[i].poz] = k;
}
g << S << '\n';
for (int i=1;i<=N;i++)
g << sol[i] << ' ' ;
return 0;
}