Cod sursa(job #1242435)

Utilizator vyrtusRadu Criuleni vyrtus Data 14 octombrie 2014 14:24:30
Problema Shop Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.84 kb
#include <fstream>
#include <cmath>
#include <iostream>
#include <algorithm>
using namespace std;

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

int N,C;
big L,S;
struct plata{
    int a;
    int b;
    int poz;
    } A[31] ;

 int sol[31];

inline bool cmp(plata A, plata B)
{
    return A.a > B.a;
}

int main()
{
        f >> N >> C >> L ;
        for (int i=1;i<=N;i++)
        {
            f >> A[i].a >> A[i].b;
            A[i].poz = i;
        }
    sort (A+1,A+N+1,cmp);
    S = 0;
    for (int i=1; i<= N ; i++)
    {
        int k = 0;
        k = min( (big)A[i].b, L / (big)pow(C,A[i].a) );
        S += k;
        L -= k * (big)pow(C,A[i].a);
        sol[A[i].poz] = k;
    }
    g << S << '\n';
    for (int i=1;i<=N;i++)
        g << sol[i] << ' ' ;

    return 0;
}