Cod sursa(job #335498)

Utilizator freak93Adrian Budau freak93 Data 30 iulie 2009 09:56:04
Problema Shop Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.92 kb
#include<fstream>

using namespace std;

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

const int maxn=35;

typedef long long int64;

int64 n,c,l,i,k,maxt,powers[40],p;

struct nod
{
    long long a;
    long long b;
    int many;
}a[maxn];

int main()
{
    f>>n>>c>>l;
    powers[0]=1;
    i=0;
    while(powers[i]<=(l/c))
        powers[i+1]=powers[i]*c,++i;
    for(i=1;i<=n;++i)
        f>>a[i].a>>a[i].b;

    a[34].a=34;
    powers[34]=-1;


    while(l)
    {
        maxt=34;
        for(i=1;i<=n;++i)
            if(powers[a[i].a]<=l&&powers[a[i].a]>powers[a[maxt].a]&&a[i].b>0)
                maxt=i;

        k=min(a[maxt].b,l/powers[a[maxt].a]);
        a[maxt].many+=k;
        l-=k*powers[a[maxt].a];
        a[maxt].b-=k;
        p+=k;
    }

    g<<p<<"\n";
    for(i=1;i<=n;++i)
        g<<a[i].many<<" ";
    g<<"\n";

    f.close();
    g.close();

    return 0;
}