Cod sursa(job #2172485)

Utilizator tqmiSzasz Tamas tqmi Data 15 martie 2018 16:42:40
Problema Shop Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.89 kb
#include <iostream>
#include <fstream>
#include <algorithm>
#define Nmax 32
using namespace std;

ifstream fin("shop.in");
ofstream fout("shop.out");

long long A[Nmax],B[Nmax],F[Nmax],S,L,C,N,ind[Nmax];

int comp(int x,int y){
    return A[x]>A[y];
}

long long put(long long a,long long p){
    long long s = 1;
    while(p>0){
        if(p&1){
            s = s * a;
        }
        a = a * a;
        p/=2;
    }
    return s;
}

int main()
{
    fin>>N>>C>>L;
    for(int i=1;i<=N;i++){
        fin>>A[i]>>B[i];
        ind[i]=i;
    }
    sort(ind+1,ind+N+1,comp);
    int k=1;
    while(L>0){
        long long M = put(C,A[ind[k]]);
        long long m = min(L/M,B[ind[k]]);
        F[ind[k]] = m;
        S += m;
        L = L - M * m;
        ++k;
    }
    fout<<S<<"\n";
    for(int i = 1; i<=N ;i++){
        fout<<F[i]<<" ";
    }
    return 0;
}