Cod sursa(job #2630487)

Utilizator BoschetiDiaconu din boscheti Boscheti Data 26 iunie 2020 10:14:55
Problema Energii Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.81 kb
#include <fstream>
#include <algorithm>
using namespace std;
struct obiecte
{
    int x,y;
};
obiecte v[1005];
int d[1005];
ifstream cin("energii.in");
ofstream cout("energii.out");
int main()
{
    int n,i,j,last=0,minn=2000000000,e;
    cin>>n>>e;
    d[0]=0;
    for(i=1;i<=n;i++)
        cin>>v[i].x>>v[i].y;
    for(i=1;i<=e;i++)
           d[i]=2000000000;
    for(i=1;i<=n;i++)
    {
        for(j=last;j>=0;j--)
        {
            if(d[j]!=2000000000 and j+v[i].x<=e and d[j+v[i].x]>d[j]+v[i].y)
                d[j+v[i].x]=d[j]+v[i].y;
            if(j+v[i].x>=e and d[j]!=2000000000 and minn>d[j]+v[i].y)
                   minn=d[j]+v[i].y;
        }
        last=min(last+v[i].x,e);
    }
    if(minn==2000000000)
         cout<<"-1";
    else
        cout<<minn;
    return 0;
}