Cod sursa(job #1251391)

Utilizator flore77Simion Florentin flore77 Data 29 octombrie 2014 13:32:34
Problema Shop Scor 60
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.86 kb
#include <fstream>
#include <math.h>
using namespace std;

struct Moneda {
    int p;
    int buc;
    int init;
};


int main() {
    ifstream in("shop.in");
    ofstream out("shop.out");
    int n, c, l, sol[31], total = 0;
    in >> n >> c >> l;
    Moneda m[n];
    for (int i = 0; i < n; i++) {
        in >> m[i].p >> m[i].buc;
        m[i].init = i;
        int k = i;
        while (k > 0 && m[k].p > m[k - 1].p) {
            swap(m[k], m[k - 1]);
            k--;
        }
    }

    for (int i = 0; i < n; i++) {
        int aux = l / pow(c, m[i].p);
        sol[m[i].init] = min(aux, m[i].buc);
        total += sol[m[i].init];
        l -= sol[m[i].init] * pow(c, m[i].p);
    }
    out << total << "\n";
    for (int i = 0; i < n; i++) {
        out << sol[i] << " ";
    }
    in.close();
    out.close();
    return 0;
}