Cod sursa(job #1811698)

Utilizator raulmuresanRaul Muresan raulmuresan Data 21 noiembrie 2016 15:19:58
Problema Shop Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.35 kb
#include<fstream>
#include<vector>
#include<string>
#include<algorithm>
#define modulo 666013

using namespace std;

ifstream fin("shop.in");
ofstream fout("shop.out");


string sir;
long long int i, n, k, j,contor,st,dr,sol,x,y,c,nr,frecventa ,cont;

vector<pair<int, int> > solutie;

struct moneda
{
    long long val, frec, init, nrFolosit;
};
moneda a[100];

bool cmp(moneda x, moneda y)
{
    return x.val > y.val;
}

int main()
{
    fin >> n >> c >> k;
    for(i = 1; i <= n; i++)
    {
        fin >> nr >> frecventa;

        x = 1;
        while(nr)
        {
            x = x * c;
            nr--;
        }
        a[i].val = x;
        a[i].frec = frecventa;
        a[i].init = i;
    }

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

    for(i = 1; i <= n; i++)
    {
        //fout << a[i].val <<" " <<a[i].frec <<" "<<a[i].init<<"\n";
    }
    cont = 0;
    i = 1;
    while(k != 0)
    {
        nr = k / a[i].val;
        nr = min(nr, a[i].frec);
        a[i].nrFolosit = nr;
        cont = cont + nr;
        k = k - (nr * a[i].val);
        i++;
    }
    fout << cont << "\n";
    for(i = 1; i <= n; i++)
    {
        for(j = 1; j <= n; j++)
        {
            if(a[j].init == i)
            {
                fout << a[j].nrFolosit <<" ";
                break;
            }
        }

    }

}