Pagini recente » Cod sursa (job #148603) | Cod sursa (job #2088177) | Cod sursa (job #2730254) | Cod sursa (job #2132223) | Cod sursa (job #1769823)
#include<fstream>
#include<algorithm>
using namespace std;
ifstream fin("shop.in");
ofstream fout("shop.out");
long long n, b;
unsigned long long x[50], s, nr;
pair< long long, pair< long long, long long > > p[50];
long long sol[100];
int main(){
fin >> n >> b >> s;
x[0] = 1;
for( long long i = 1; i <= 32; i++ ){
x[i] = 1LL * x[i - 1] * b;
}
for( long long i = 1; i <= n; i++ ){
fin >> p[i].first >> p[i].second.first;
p[i].second.second = i;
}
sort( p + 1, p + n + 1 );
nr = 0;
for( long long i = n; i >= 1; i-- ){
long long ok = s / x[ p[i].first ];
ok = min( ok, p[i].second.first );
nr += ok;
s -= x[ p[i].first ] * ok;
sol[ p[i].second.second ] = ok;
p[i].second.first -= ok;
}
fout << nr << "\n";
for( long long i = 1; i <= n; i++ ){
fout << sol[i] << " ";
}
return 0;
}