Cod sursa(job #1769823)

Utilizator robx12lnLinca Robert robx12ln Data 3 octombrie 2016 11:18:19
Problema Shop Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.93 kb
#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;
}