Cod sursa(job #1089393)

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

using namespace std;

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

unsigned long long n,c,l,aux,folosite = 0;
unsigned long  rez[32];
struct monede
{
    long long val;
     unsigned long count;
     int poz;
};
monede mon[31];

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

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

     int k=1;
    while (l && k <=n)
    {
        if (mon[k].val > l || mon[k].count == 0 )
        {
          k++;
        }
        else
            {
                l -=mon[k].val;
                rez[mon[k].poz]++;
                mon[k].count --;
                folosite++;
            }
    }

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

    return 0;
}