Cod sursa(job #1089439)

Utilizator vyrtusRadu Criuleni vyrtus Data 21 ianuarie 2014 18:26:14
Problema Shop Scor 40
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.1 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;
    while (l > 0 && ind <=n)
    {
        if (mon[ind].count)
        {
           for (int k = 1; k<=mon[ind].count; k++ )
           {
                rez[mon[ind].poz] ++;
                l -=mon[ind].val;
                m++;
                if ( l - mon[ind].val < 0 ) break;
           }
        }
         ind ++;
    }
         g << m << "\n";
    for (int i=1;i<=n;i++)
       if (rez[i])  g << rez[ i ] << " ";

    return 0;
}