Cod sursa(job #2121667)

Utilizator MarcelVargaMarcel Varga MarcelVarga Data 4 februarie 2018 01:05:48
Problema Energii Scor 10
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.79 kb
#include <fstream>
#include <climits>
using namespace std;
ifstream fi("energii.in");
ofstream fo("energii.out");
int i,j,n,w;
int mi=INT_MAX;
int e[10001],c[10001];
int dp[10001][10001];
void af1(){for(int i=1;i<=n;i++){for(int j=1;j<=w;j++) fo<<dp[i][j]<<" ";fo<<'\n';}fo<<'\n';}
int main()
{
    fi>>n>>w;
    for(i=1;i<=n;i++) {fi>>e[i]>>c[i];for(j=1;j<=w;j++) dp[i][j]=INT_MAX;}
    for(j=0;j<=w;j++) dp[0][j]=INT_MAX;
    for(i=0;i<=n;i++) dp[i][0]=INT_MAX;
    for(i=1;i<=n;i++) for(j=1;j<=w;j++){
    if(e[i]>=j){
        dp[i][j]=min(dp[i-1][j],c[i]);

    }
    else{
    int x;
    x=j-e[i];
    if(dp[i-1][x]!=INT_MAX)
    dp[i][j]=min(dp[i][j],c[i]+dp[i-1][x]);}
    }
   // af1();
    if(dp[n][w]!=INT_MAX)
    fo<<dp[n][w];
    else fo<<-1;
    return 0;
}