Cod sursa(job #2720921)

Utilizator alessiamtr12Mitrica Alessia alessiamtr12 Data 11 martie 2021 13:34:49
Problema Energii Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.73 kb
#include <fstream>
#include<algorithm>
#define INF 10000001
using namespace std;
ifstream fin("energii.in");
ofstream fout("energii.out");
int n,w,dp[10005],x;
struct elem
{
    int e,c;
}v[1005];
bool cmp(elem x,elem y)
{
    return x.e>y.e||(x.e==y.e&&x.c<y.c);
}
int main()
{
    fin>>n>>w;
    for(int i=1;i<=n;i++)
    {
        fin>>v[i].e>>v[i].c;
    }
    sort(v+1,v+n+1,cmp);
    for(int i=1;i<=w;i++)
        dp[i]=INF;
    for(int i=1;i<=n;i++)
    {
        for(int j=w;j>=0;j--)
        {
            x=j+v[i].e;
            if(x>w)
                x=w;
            dp[x]=min(dp[x],dp[j]+v[i].c);
        }
    }
    if(dp[w]==INF)
        fout<<-1;
    else
        fout<<dp[w];
    return 0;
}