Cod sursa(job #2615198)

Utilizator LuxinMatMatasaru Luxin Gabriel LuxinMat Data 13 mai 2020 20:13:53
Problema Energii Scor 35
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.8 kb
#include<fstream>
using namespace std;
ifstream cin("energii.in");
ofstream cout("energii.out");
int v[5001], e[1001], c[1001];
int main()
{
    int g, w, i, j, minim, s;
    cin>>g>>w;
    s=0;
    for(i=1; i<=g; i++)
    {
        cin>>e[i]>>c[i];
        s+=c[i];
    }
    //cout<<s<<'\n';
    for(i=1; i<=g; i++)
        for(j=s-c[i]; j>=0; j--)
            if(v[j]+e[i] > v[j+c[i]] && v[j] != 0)
                v[j+c[i]]=v[j]+e[i];
            else if(j == 0 && v[j]+e[i] > v[j+c[i]])
                v[j+c[i]]=v[j]+e[i];
    //for(i=1; i<=s; i++)
    //    cout<<v[i]<<" ";
    //cout<<'\n';
    minim=10000001;
    for(i=s; i>=0; i--)
        if(v[i] >= w)
            minim=i;
    if(minim == 10000001)
        cout<<"-1 ";
    else
        cout<<minim;
    return 0;
}