Pagini recente » Cod sursa (job #1720587) | Cod sursa (job #690707) | Cod sursa (job #1327343)
#include<fstream>
using namespace std;
ifstream fin( "shop.in" );
ofstream fout( "shop.out" );
const int nmax = 32;
bool a[ nmax + 1 ];
int t[ nmax + 1 ];
int v[ nmax + 1 ];
int k[ nmax + 1 ];
int main() {
int n, c;
long long s, p, ans;
fin >> n >> c >> s;
for( int i = 0; i < n; ++ i ) {
fin >> k[ i ];
a[ k[ i ] ] = 1;
fin >> v[ k[ i ] ];
t[ k[ i ] ] = v[ k[ i ] ];
}
p = 1;
for( int i = 0; i < nmax; ++ i ) {
p *= c;
}
ans = 0;
for( int i = nmax; s > 0 && i >= 0; -- i, p /= c ) {
if ( a[ i ] == 1 ) {
if ( v[ i ] * p <= s ) {
s -= v[ i ] * p;
v[ i ] = 0;
} else {
v[ i ] -= s / p;
s %= p;
}
ans += t[ i ] - v[ i ];
}
}
fout << ans << "\n";
for( int i = 0; i < n; ++ i ) {
fout << t[ k[ i ] ] - v[ k[ i ] ] << " ";
}
fout << "\n";
fin.close();
fout.close();
return 0;
}