Cod sursa(job #1465186)

Utilizator fanache99Constantin-Buliga Stefan fanache99 Data 26 iulie 2015 17:49:32
Problema Energii Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.72 kb
#include<cstdio>
using namespace std;
int dp[10010][5010];
int minim(int a,int b){
    if(a<b)
        return a;
    return b;
}
int main (){
    freopen("energii.in","r",stdin);
    freopen("energii.out","w",stdout);
    int n,i,j,emin,e,c;
    scanf("%d%d",&n,&emin);
    for(i=0;i<=n;i++)
        for(j=0;j<=emin;j++)
            dp[i][j]=2000000000;
    for(i=1;i<=n;i++){
        scanf("%d%d",&e,&c);
        for(j=emin;j>=1;j--){
            if(j<=e)
                dp[i][j]=minim(dp[i-1][j],c);
            else
                dp[i][j]=minim(dp[i-1][j],dp[i-1][j-e]+c);
        }
    }
    if(dp[n][emin]==2000000000)
        printf("-1");
    else
        printf("%d",dp[n][emin]);
    return 0;
}