Cod sursa(job #2636455)

Utilizator Teodora1314Teodora Oancea-Negoita Teodora1314 Data 18 iulie 2020 10:02:24
Problema Energii Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.88 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];
    }
    cmin[0]=1;
    for(i=1;i<=g;i++)
    {
        for(j=w;j>=0;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[w]>=1)
        cout<<cmin[w]-1<<'\n';
    else cout<<"-1"<<'\n';
    return 0;
}