Cod sursa(job #2170635)

Utilizator RazvanChirilaRazvan RazvanChirila Data 15 martie 2018 09:07:23
Problema Shop Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.86 kb
#include <bits/stdc++.h>
using namespace std;
ifstream f("shop.in");
ofstream g("shop.out");
unsigned long long L;

int n,c,monezif,mu[32];

struct moneda{int v,a,poz;}monezi[100000001];

int cmp(moneda a, moneda b)
{
    return (a.v>b.v);
}

int main()
{
    int i;
    f>>n>>c>>L;
    for(i=1;i<=n;i++)
    {
        f>>monezi[i].v>>monezi[i].a;
        monezi[i].poz=i;
    }

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

    for(i=1;i<=n && L>0;i++)
    {
        int valoare=1<<monezi[i].v;//2 la puterea monezi[i].v
        int cat=L/valoare;
        int amin=min(cat,monezi[i].a);
        if(amin>0)
        {
            monezif+=amin;
            mu[monezi[i].poz]=amin;
            L=L-amin*valoare;
        }
    }

    g<<monezif<<'\n';
    for(i=1;i<=n;i++)
        g<<mu[i]<<' ';
    f.close();
    g.close();
    return 0;
}