Cod sursa(job #2415512)

Utilizator ardutgamerAndrei Bancila ardutgamer Data 26 aprilie 2019 10:00:09
Problema Energii Scor 60
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.92 kb
#include <cstdio>
#include <algorithm>
#include <climits>
#include <vector>

using namespace std;

struct engine{
int energy,price;
engine(){}
engine(int a,int b){energy = a;price = b;}
};

vector<engine>v;
int dp[10000005];

int main()
{
    freopen("energii.in","r",stdin);
    freopen("energii.out","w",stdout);
    int n,voltage,s = 0,x,y;
    scanf("%d%d",&n,&voltage);
    for(int i = 0 ; i < n ; i++)
    {
        scanf("%d%d",&x,&y);
        engine temp(x,y);
        v.push_back(temp);
        s += y;
    }
    if(s < voltage)
    {
        printf("-1\n");
        return 0;
    }
    for(int i = 1 ; i <= s ; i++)
        dp[i] = 10000005;
    for(int i = 0 ; i < v.size() ; i++)
    {
        for(int j = voltage ; j >= 0 ; j--)
            dp[min(voltage,j+v[i].energy)] = min(dp[min(voltage,j+v[i].energy)],dp[j]+v[i].price);

    }
    printf("%d\n",dp[voltage]);
    return 0;
}