Cod sursa(job #2661677)

Utilizator martinmiere133Cranga Antonio martinmiere133 Data 22 octombrie 2020 15:30:32
Problema Energii Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.72 kb
#include <iostream>
#include <math.h>
#include <vector>
#include <queue>
#include <stack>
#include <list>
#include <iomanip>
#include <stdlib.h>
#include <fstream>
#include <algorithm>
#include <string>
#include <set>
using namespace std;
ifstream f("energii.in");
ofstream g("energii.out");
int n , gmax , dp[50001] , gc , vc;
int main() {
    long long suma_max = 0;
    f>>n>>gmax;
    for(int i=1;i<=50001;i++)dp[i]=1e9;
    for(int i=1;i<=n;i++)
    {
        f>>gc>>vc;
        suma_max+=gc;
        for(int j= gmax ; j>=gc ; j--)
        {dp[j] = min(dp[j] , dp[j-gc] + vc);
        }
    }
    if(suma_max < gmax)
    {
        g<<-1;
    }
    else {
    int i = gmax;
    while(dp[i] == 1e9)i++;
        g<<dp[i];}
    return 0;
}