Pagini recente » Cod sursa (job #1189783) | Cod sursa (job #415411) | Cod sursa (job #371271) | Cod sursa (job #1759261) | Cod sursa (job #2172485)
#include <iostream>
#include <fstream>
#include <algorithm>
#define Nmax 32
using namespace std;
ifstream fin("shop.in");
ofstream fout("shop.out");
long long A[Nmax],B[Nmax],F[Nmax],S,L,C,N,ind[Nmax];
int comp(int x,int y){
return A[x]>A[y];
}
long long put(long long a,long long p){
long long s = 1;
while(p>0){
if(p&1){
s = s * a;
}
a = a * a;
p/=2;
}
return s;
}
int main()
{
fin>>N>>C>>L;
for(int i=1;i<=N;i++){
fin>>A[i]>>B[i];
ind[i]=i;
}
sort(ind+1,ind+N+1,comp);
int k=1;
while(L>0){
long long M = put(C,A[ind[k]]);
long long m = min(L/M,B[ind[k]]);
F[ind[k]] = m;
S += m;
L = L - M * m;
++k;
}
fout<<S<<"\n";
for(int i = 1; i<=N ;i++){
fout<<F[i]<<" ";
}
return 0;
}