Pagini recente » Cod sursa (job #2553479) | Cod sursa (job #904745) | Cod sursa (job #2601799) | Cod sursa (job #1513575) | Cod sursa (job #2173624)
#include <fstream>
#include <iostream>
using namespace std;
ifstream fin("shop.in");
ofstream fout("shop.out");
long long N,C,L,MaxP,NSol;
long long Pow[35],X[35],Sol[35],Index[35];
void Read()
{
fin >> N >> C >> L;
for(int i = 1 ; i <= N ; ++i)
{
long long a,b; fin >> a >> b;
X[a] = b; MaxP = max(MaxP,a);
Index[i] = a;
}
}
void Solve()
{
Pow[0] = 1;
for(int i = 1 ; i <= 32 ; ++i)
Pow[i] = Pow[i - 1] * C;
while(L)
{
long long done = min(X[MaxP] , L / Pow[MaxP]);
L -= done * Pow[MaxP];
Sol[MaxP] = done;
NSol += done;
MaxP--;
}
}
void Print()
{
fout << NSol << "\n";
for(int i = 1 ; i <= N ; ++i)
fout << Sol[Index[i]] << " ";
fout << "\n";
}
int main()
{
Read();
Solve();
Print();
fin.close();
fout.close();
return 0;
}