Cod sursa(job #1959528)

Utilizator cyg_vladioanBirsan Vlad cyg_vladioan Data 9 aprilie 2017 16:39:14
Problema Energii Scor 5
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.8 kb
#include <cstdio>
#include <algorithm>
using namespace std;
int d[1000010];
const int INF = 1e9;
int main()
{
    freopen("energii.in" , "r" , stdin);
    freopen("energii.out" , "w" , stdout);
    int n , g , v , G , i , j , last , minim;
    scanf("%d%d" , &n , &G);
    d[0] = 0;
    last = 0;
    for(i = 1 ; i <= 2 * G; i ++)
        d[i] = INF;
    for(i = 1 ; i <= n ; i ++)
    {
        scanf("%d%d" , &g , &v);
        for(j = last ; j >= 0 ; j --)
        {
            d[j + g] = min(d[j + g] , d[j] + v);
            if(j + g > last)
                last = j + g;
        }
    }
    minim = INF;
    for(j = G ; j <= last ; j ++)
            minim = min(minim , d[j]);
    if(G <= last)
        printf("%d\n" , minim);
    else
        printf("-1\n");
    return 0;
}