Cod sursa(job #2636453)

Utilizator Teodora1314Teodora Oancea-Negoita Teodora1314 Data 18 iulie 2020 09:46:39
Problema Energii Scor 90
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.96 kb
#include <iostream>
#include <fstream>
using namespace std;
int g,w,i,e[1005],c[1005],cmin[100005],j,nj;
int main()
{
    ifstream cin("energii.in");
    ofstream cout("energii.out");
    cin>>g>>w;
    for(i=1;i<=g;i++)
    {
        cin>>e[i]>>c[i];
    }
    for(i=1;i<=g;i++)
    {
        for(j=w;j>=1;j--)
        {
            nj=j+e[i];
            if(cmin[j] && nj<=w)
            {
                if(!cmin[nj] || cmin[nj]>cmin[j]+c[i])
                {
                    cmin[nj]=cmin[j]+c[i];
                }
            }
            else if(cmin[j] && nj>w)
            {
                if(!cmin[w] || cmin[w]>cmin[j]+c[i])
                {
                    cmin[w]=cmin[j]+c[i];
                }
            }
        }
        if(!cmin[e[i]] || cmin[e[i]]>c[i])
        {
            cmin[e[i]]=c[i];
        }
    }
    if(cmin[w]!=0)
        cout<<cmin[w]<<'\n';
    else cout<<"-1"<<'\n';
    return 0;
}