Cod sursa(job #2496722)

Utilizator CodCatalinCodreanu Catalin CodCatalin Data 21 noiembrie 2019 16:15:19
Problema Shop Scor 60
Compilator cpp-64 Status done
Runda ad_hoc Marime 0.87 kb
#include <fstream>
#include <algorithm>
using namespace std;

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

int n,k,l,sol[100000],nr,ok;

struct mon
{
    int c,v,ci,poz;
}m[50];

void calc(int i)
{
    int aux=m[i].v;
    m[i].v=1;
    while(aux)m[i].v*=k,aux--;
}

bool cmp(mon ax,mon ay)
{
    if(ok)
    return (ax.poz<ay.poz);
    return (ax.v>ay.v);
}

int main()
{
    f>>n>>k>>l;
    for(int i=1;i<=n;++i)
    {
        f>>m[i].v>>m[i].c;m[i].ci=m[i].c;m[i].poz=i;
        calc(i);
    }
    sort(m+1,m+n+1,cmp);
//    for(int i=1;i<=n;++i)g<<m[i].v<<endl;
    for(int i=1;i<=n;++i)
    {
        while(l-m[i].v>=0&&m[i].c)
        {
            l-=m[i].v;
            nr++;m[i].c--;
        }
    }
    g<<nr<<'\n';
    ok=1;
    sort(m+1,m+n+1,cmp);
    for(int i=1;i<=n;++i)g<<m[i].ci-m[i].c<<" ";
    g<<'\n';
    return 0;
}