Cod sursa(job #866449)

Utilizator misinozzz zzz misino Data 28 ianuarie 2013 07:50:44
Problema Shop Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.79 kb
#include<fstream>
#include<algorithm>
using namespace std;
ifstream f("shop.in");
ofstream g("shop.out");
int i,p,n,k,l,c,nrm,poz[430];
struct ban{int ans,poz,val,nr;};
ban v[40];
bool cmp(ban a,ban b)
{
    if(a.val>b.val)
    return 1;
    swap(poz[a.poz],poz[b.poz]);
    return 0;
}
int main()
{
    f>>n>>c>>l;
    for(i=1;i<=n;++i)
    {
        f>>p>>v[i].nr;
        v[i].val=1;
        for(;p;--p)
        v[i].val*=c;
        poz[i]=i;
        v[i].poz=i;
    }
    sort(v+1,v+n+1,cmp);
    nrm=0;
    for(i=1;i<=n;++i)
    {
        k=l/v[i].val;
        if(k>v[i].nr)
        k=v[i].nr;
        v[i].ans=k;
        l-=k*v[i].val;
        nrm+=k;
    }
    g<<nrm<<'\n';
    for(i=1;i<=n;++i)
    g<<v[poz[v[i].poz]].ans<<' ';
    g<<'\n';
    return 0;
}