Cod sursa(job #2045113)

Utilizator FPSFTA88Filote Serban FPSFTA88 Data 21 octombrie 2017 20:41:19
Problema Energii Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.84 kb
#include <fstream>
using namespace std;
ifstream f ("energii.in");
ofstream g ("energii.out");
int n,k,c[1001],e[1001],b[5001],t[5001],i,j,s,a;
int main()
{
    f>>n>>k;
    for(i=1;i<=n;++i)
        f>>e[i]>>c[i];
        for(i=1;i<=n;++i)
            for(j=2;j<=n;++j)
            if(e[j]<e[j-1])
        {
            swap(e[j],e[j-1]);
            swap(c[j],c[j-1]);
        }
    for(i=n;i>=1&&b[k]==0;--i)
    {
        b[e[i]]=1;
        t[e[i]]=c[i];
        for(j=1;j<=k-e[i];++j)
        {
            if(b[j]&&(b[j+e[i]]==0||b[j+e[i]]>b[j]+1))
               {
                   b[j+e[i]]=b[j]+1;
                   t[j+e[i]]=c[i];
               }
        }
    }
    s=0;
    a=k;
    while(a>0)
    {
        s=s+t[a];
        a=a-t[a];
    }
    if(s<k)
        g<<-1;
    else
    g<<s;
    return 0;
}