Cod sursa(job #2359614)

Utilizator ikogamesIon Ceaun ikogames Data 28 februarie 2019 22:39:11
Problema Energii Scor 40
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.83 kb
#include <bits/stdc++.h>

using namespace std;

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

int n, E, c[1002], v[1002], s, s2;
int dp[101][20000];

void Read()
{
    fin >> n >> E;

    for(int i = 1; i <= n; i++)
    {
        fin >> v[i] >> c[i];
        s += v[i];
        s2 += c[i];
    }
    if( s < E)
    {
        fout << "-1\n";
        exit(0);
    }
}

void Solve()
{
    int mn = 99999999;
    dp[1][c[1]] = v[1];
    for(int i = 2; i <= n; i++)
        for(int j = 1; j <= s2; j++)
        {
            dp[i][j] = dp[i - 1][j];
            if(j - c[i] >= 0)
                dp[i][j] = max(dp[i][j], dp[i - 1][j - c[i]] + v[i]);
            if(dp[i][j] >= E)
                mn = min(mn, j);
        }
    fout << mn;
}

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