Cod sursa(job #2704938)

Utilizator mitocaru_marioMitocaru Mario-Alexandru mitocaru_mario Data 11 februarie 2021 17:19:32
Problema Energii Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.95 kb
#include <fstream>
#define MAX 1000000000

using namespace std;

ifstream cin("energii.in");
ofstream cout("energii.out");

struct ura
{
    int e,c;
};
ura v[1001];

int suma[15001];

int main()
{
    int i,n,maxi, W, j,pozmax, pp, gasit;
    cin>>n>>W;
    maxi=0;
    for(i=1;i<=n;i++)
    {
        cin>>v[i].e>>v[i].c;
        if(v[i].e>maxi)
            maxi=v[i].e;
    }
    maxi=15000;
    for(i=1;i<=maxi;i++)
        suma[i]=MAX;
    pozmax=0;
    for(i=1;i<=n;i++)
    {
        for(j=maxi;j>=1;j--)
            if(suma[j]!=MAX)
                if(j+v[i].e <= maxi)
                    if(suma[j+v[i].e]>suma[j]+v[i].c)
                        suma[j+v[i].e]=suma[j]+v[i].c;

        if(suma[v[i].e]>v[i].c)
            suma[v[i].e]=v[i].c;
    }
    int m=MAX;
    for(i=W;i<=maxi;i++)
        if(suma[i]<m)
            m=suma[i];
    if(m==MAX)
        cout<<-1;
    else
        cout<<m;


    return 0;
}