Cod sursa(job #2325500)

Utilizator serban24Popovici Serban-Florin serban24 Data 22 ianuarie 2019 18:12:52
Problema Energii Scor 45
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.72 kb
#include <bits/stdc++.h>

using namespace std;

ifstream fin("energii.in");
ofstream fout("energii.out");

int n,val;
int w[1005],v[1005];
int dp[10011005];

int main(){
    int i,j,sum1=0,sum=0,answer=1000000000,ok=0;

    fin>>n>>val;

    for(i=1;i<=n;i++){
        fin>>w[i]>>v[i];
        sum1+=w[i];
    }

    dp[0]=0;

    for(i=1;i<=sum1;i++)
        dp[i]=1000000000;

    for(i=1;i<=n;i++){
        sum+=w[i];
        for(j=sum;j>=w[i];j--)
            dp[j]=min(dp[j],v[i]+dp[j-w[i]]);
    }

    for(i=val;i<=sum;i++)
        if(dp[i]<answer){
            answer=dp[i];
            ok=1;
        }

    if(ok)
        fout<<answer;
    else
        fout<<-1;

    return 0;
}