Cod sursa(job #1312653)

Utilizator Darius15Darius Pop Darius15 Data 9 ianuarie 2015 20:22:35
Problema Shop Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.87 kb
#include <fstream>
#include <algorithm>
using namespace std;
ifstream f("shop.in");
ofstream g("shop.out");
long long v[100],c,l,p,sol[100],x,n,i,sum,j;
struct poz{int t,c,d;};
poz a[35];
bool cmp(poz a,poz b)
{
    return a.t<b.t;
}
int main()
{
    f>>n>>c>>l;
    p=1;
    v[0]=1;
    for (i=1;p<=10000000000000000/c;v[i]=p*c,p=p*c,i++);
    for (i=1;i<=n;i++)
        f>>a[i].t>>a[i].c,a[i].d=i;
    sort(a+1,a+n+1,cmp);
    for (i=n;i>=1;i--)
    {
        if (l>0)
        {
            if (l-v[a[i].t]*a[i].c>=0)
                l=l-v[a[i].t]*a[i].c,sum+=a[i].c,sol[i]=a[i].c;
            else
                x=l/v[a[i].t],l=l-v[a[i].t]*x,sum+=x,sol[i]=x;
        }
    }
    g<<sum<<'\n';
    for (i=1;i<=n;i++)
        {
            for (j=1;j<=n;j++)
                if (a[j].d==i)
                g<<sol[j]<<' ';
        }
    return 0;
}