Cod sursa(job #2360010)

Utilizator My_Road_To_ONIAndrei Panainte My_Road_To_ONI Data 1 martie 2019 11:36:25
Problema Energii Scor 60
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.79 kb
#include <bits/stdc++.h>

using namespace std;

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

int const GMAX = 1005;
int const WMAX = 5005;
int const DMAX = 10005;
int N, C;
int dp[GMAX][WMAX];
int e[DMAX], c[DMAX];

void Read()
{
    int i;
    fin >> N >> C;
    for (i = 1; i <= N; i++)
        fin >> e[i] >> c[i];
}

void DP()
{
    int i, j;
    for(i = 1; i <= C; i++)
        dp[1][i] = 1e9;
    for (i = 2; i <= N; i++)
        for (j = 2;  j <= C; j++)
        {
            if(j - e[j] >= 0)
                dp[i][j] = min(dp[i-1][j], dp[i-1][j - e[i]] + c[i]);
            else dp[i][j] = min(dp[i-1][j], c[i]);
        }
    if(dp[N][C] == 1e5) fout << "-1";
    else fout << dp[N][C];
}

int main()
{
    Read();
    DP();
    return 0;
}