Cod sursa(job #1277213)

Utilizator StarGold2Emanuel Nrx StarGold2 Data 27 noiembrie 2014 12:52:30
Problema Energii Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.9 kb
#include <fstream>
#define INF 1000000000
using namespace std;

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

int n, m, i, j, k, ok, minim, poz;
pair < int , int > v[2000];
int w[100001], t[100001];

int main(){
    fin >> n >> k;
    for(i = 1; i <= n; i ++)
        fin >> v[i].first >> v[i].second;
    w[0] = 1; minim = 2000000000;
    //w[i] = costul minim sa obtin exact energie i
    for (i=1;i<=k;i++)
        w[i] = INF;
    w[0] = 0;
    for (i=1;i<=n;i++) {
        for (j=k-1;j>=0;j--)
            if (w[j] != INF) {
                if (j+v[i].first >= k)
                    poz = k;
                else
                    poz = j+v[i].first;

                if (w[poz] > w[j] + v[i].second)
                    w[poz] = w[j] + v[i].second;
            }
    }


    if(w[k] == INF)
        fout << -1;
    else
        fout << w[k];
    return 0;
}