Cod sursa(job #2239789)

Utilizator liviu2000Dragomirescu Liviu liviu2000 Data 11 septembrie 2018 21:06:05
Problema Energii Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.76 kb
#include <bits/stdc++.h>

using namespace std;

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

int dp[10005][1005] ;
int e[1005] , c[1005] ;

int main()
{
    int i , j , g , w , sol, emax = 0 ;
    fin >> g >> w ;
    for ( i = 1 ; i <= g ; i++ )
    {
        fin >> e[i] >> c[i] ;
        emax = max(e[i],emax) ;
        dp[e[i]][1] = c[i] ;
    }
    sol = 0x3f3f3f3f ;
    for ( i = 1 ; i <= emax ; i++ )
    {
        for ( j = 2 ; j <= g ; j++ )
        {
            dp[i][j] = dp[i][j-1] ;
            if ( i - e[j] >= 0 && dp[i-e[j]][j-1] != 0 )
                dp[i][j] = min(dp[i][j] , dp[i-e[j]][j-1]+c[j]) ;
            if ( i >= w )
                sol = min(sol,dp[i][j]) ;
        }
    }
    fout << sol ;
}