Pagini recente » Cod sursa (job #1639087) | Cod sursa (job #98569) | Cod sursa (job #1861714) | Istoria paginii runda/simulare-40-2 | Cod sursa (job #1006083)
#include <iostream>
#include <fstream>
#include <algorithm>
using namespace std;
int N, C, A, B;
pair<long long, pair<int, int> > V[35];
long long L, Tot, Ans[35];
int main()
{
ifstream cin("shop.in");
ofstream cout("shop.out");
cin >> N >> C >> L;
for(int i = 1; i <= N; ++ i)
{
cin >> A >> B;
long long Val = 1;
for(int j = 1; j <= A; ++ j)
Val *= 1LL * C;
V[i] = make_pair(Val, make_pair(B, i));
}
sort(V + 1, V + N + 1);
for(int i = N; i; -- i)
{
long long F = min(L / V[i].first, 1LL * V[i].second.first);
Ans[V[i].second.second] = F;
Tot += F;
L -= F * V[i].first;
}
cout << Tot << "\n";
for(int i = 1; i <= N; ++ i)
cout << Ans[i] << " ";
return 0;
}