Cod sursa(job #2771795)

Utilizator carinamariaCarina Maria Viespescu carinamaria Data 29 august 2021 11:57:16
Problema Energii Scor 45
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.81 kb
#include <fstream>
using namespace std;
ifstream cin("energii.in");
ofstream cout("energii.out");
int v[5001], p[5001];
int f[1000001];
int n, sol, i, j, G, maxim;
int main () {
    cin>>n>>G;
    for (i=1;i<=n;i++){
        cin>>p[i]>>v[i];
    }
    for (i=1;i<=n;i++){
        for (j=maxim;j>=1;j--){
            if (f[j]!=0){
                if (f[j]+p[i]>f[j+v[i]]){
                        f[j+v[i]]=f[j]+p[i];
                        if(j+v[i]>maxim)
                            maxim=j+v[i];
                }


            }
        }
        if (p[i]>f[v[i]]){
            f[v[i]]=p[i];
            if(maxim<v[i])
                maxim=v[i];
        }
    }
    for (i=1;i<=maxim;i++){
        if(f[i]>=G){
            cout<<i;
            return 0;
        }

    }
    cout<<-1;
}