Cod sursa(job #1302997)

Utilizator eu3neuomManghiuc Teodor-Florin eu3neuom Data 27 decembrie 2014 15:21:15
Problema Shop Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.07 kb
#include <iostream>
#include <fstream>

using namespace std;

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

long long int val[50],v[50],sol[50];

int main()
{
    long long int n,c,l,mx = -100,p,cat,monezi,b,a;
    f >> n >> c >> l;
    for(int i = 1; i <= n; i++){
        f >> a >> b;
        if(a > mx)
            mx = a;
        v[a] += b;
        sol[i] = a;
    }
    val[0] = 1;
    p = 1;
    for(int i = 1; i <= mx; i++){
        p *= c;
        val[i] = p;
    }
    monezi = 0;
    for(int i = mx; i >= 0 && l != 0; i--){
        if(v[i] != 0){
            cat = l / val[i];
            if(cat <= v[i]){
                v[i] = cat;
                monezi += v[i];
                l = l - val[i] * cat;
            } else {
                monezi += v[i];
                l = l - val[i] * v[i];
            }
        }
        if(l == 0){
            for(int j = i - 1; j >= 0; j--)
                v[j] = 0;
        }
    }
    g << monezi << "\n";
    for(int i = 1; i <= n; i++)
        g << v[sol[i]] << " ";
    return 0;
}