Cod sursa(job #1089458)

Utilizator vyrtusRadu Criuleni vyrtus Data 21 ianuarie 2014 18:33:33
Problema Shop Scor 40
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.01 kb
#include <fstream>
#include <cmath>
#include <iostream>
#include <algorithm>

typedef long long big;
using namespace std;

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

big n,c,l,aux,m;
big  rez[31];
struct moneda
{
    big val;
    big count;
    int poz;
};

moneda mon[31];

bool cmp(moneda a, moneda b) {return a.val > b.val;}

int main()
{
        f >> n >> c >> l ;
        for (int i=1;i<=n;i++)
        {
              big a,b;
                f >> a >> b;
               mon[i].val = pow(c,a);
               mon[i].count = b;
               mon[i].poz = i;
        }
        sort (mon+1,mon+n+1,cmp);

    int ind = 1;
    big y;
        for (int i=1;i<=n && l;i++)
        {
            y = l / mon[i].val;
            if (y > mon[i].count) y = mon[i].count;
             l -= y*mon[i].val;
             m += y;
             rez [ mon[i].poz ] = y;
        }

         g << m << "\n";
    for (int i=1;i<=n;i++)
       if (rez[i])  g << rez[ i ] << " ";

    return 0;
}