Cod sursa(job #1389169)

Utilizator FlorinHajaFlorin Gabriel Haja FlorinHaja Data 16 martie 2015 08:30:22
Problema Shop Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.95 kb
#include <fstream>
#include <cmath>
#include <algorithm>
using namespace std;

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

struct bani{
    int put, cant, cant_init;
    short ord_init;
    long long int val;
};

bani b[33];
int n, i, j, c;
long long s, cnt;

int cmp(bani x, bani y)
{   return x.put > y.put;   }

int cmp1(bani x, bani y)
{   return x.ord_init < y.ord_init; }

int main()
{
    f >> n >> c >> s;
    for (i = 1; i <= n; i++)
    {
        f >> b[i].put >> b[i].cant_init;
        b[i].cant = b[i].cant_init;
        b[i].val = pow(c, b[i].put);
        b[i].ord_init = i;
        //g << b[i].val << " ";
    }

    sort (b+1, b+n+1, cmp);

    for (i = 1; i <= n && s > 0; i++)
        while (s - b[i].val >= 0 && b[i].cant)
            s -= b[i].val, b[i].cant--, cnt++;

    sort (b+1, b+n+1, cmp1);

    g << cnt << "\n";
    for (i = 1; i <= n; i++)
        g << b[i].cant_init - b[i].cant << " ";
    return 0;
}