Cod sursa(job #2615226)

Utilizator LuxinMatMatasaru Luxin Gabriel LuxinMat Data 13 mai 2020 21:06:23
Problema Energii Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.91 kb
#include<fstream>
using namespace std;
ifstream cin("energii.in");
ofstream cout("energii.out");
int v[50000001], e[1001], c[1001];
int main()
{
    int g, w, i, j, minim, se, sc;
    cin>>g>>w;
    sc=0;
    se=0;
    for(i=1; i<=g; i++)
    {
        cin>>e[i]>>c[i];
        if(se <= w)
        {
            se+=e[i];
            sc+=c[i];
        }
    }
    //cout<<se<<" "<<sc;
    //cout<<s<<'\n';
    for(i=1; i<=g; i++)
        for(j=sc-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=sc; i>=0; i--)
        if(v[i] >= w)
            minim=i;
    if(minim == 10000001)
        cout<<"-1 ";
    else
        cout<<minim;
    return 0;
}