Cod sursa(job #1447575)

Utilizator cristina_borzaCristina Borza cristina_borza Data 4 iunie 2015 19:19:40
Problema Shop Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.9 kb
#include <algorithm>
#include <fstream>
#define NMAX 50
using namespace std;

ifstream f("shop.in");
ofstream g("shop.out");

struct elem {long long p , poz , nr ;} v[NMAX];
long long n , c , l , sol[NMAX] , sum ;

bool comp(elem a , elem b){
    return a.p > b.p;
}

long long putere(long long poz){
    long long i , nr = 1;
    for(i = 1 ; i <= v[poz].p ; ++i){
        nr *= c;
    }
    return nr;
}

int main()
{
    long long i ;
    f >> n >> c >> l;

    for(i = 1 ; i <= n ; ++i){
        f >> v[i].p >> v[i].nr;
        v[i].poz = i ;
    }
    sort(v + 1 , v + n + 1 , comp);
    for(i = 1 ; i <= n ; ++i){
        sol[v[i].poz] = min(v[i].nr , l/putere(i));
        long long x = sol[v[i].poz] * putere(i);
        l -= x;
        sum += sol[v[i].poz];
    }
    g << sum << '\n' ;
    for(i = 1 ; i <= n ; ++i){
        g << sol[i] << " " ;
    }
    return 0;
}