Cod sursa(job #2277909)

Utilizator pasoi_stefanPasoi Stefan pasoi_stefan Data 6 noiembrie 2018 23:54:35
Problema Energii Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.56 kb
#include<fstream>
using namespace std;
ifstream cin("energii.in");
ofstream cout("energii.out");
const int inf=100000;
int n,w,p[10005],g[10005],dp[10005];
int main(){
    cin>>n>>w;
    for(int i=1;i<=n;i++)
        cin>>g[i]>>p[i];
    for(int i=1;i<=w;i++)
        dp[i]=inf;
    for(int i=1;i<=n;i++)
        for(int j=w;j>=0;j--)
        if(dp[j]!=inf){
            if(j+g[i]<=w)
                dp[j+g[i]]=min(dp[j+g[i]],p[i]+dp[j]);
            else dp[w]=min(dp[w],p[i]+dp[j]);
        }
    if(dp[w]==inf) cout<<-1;
    else cout<<dp[w];
}