Cod sursa(job #1277191)

Utilizator StarGold2Emanuel Nrx StarGold2 Data 27 noiembrie 2014 12:22:24
Problema Energii Scor 5
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.96 kb
#include <fstream>
using namespace std;

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

int n, m, i, j, k, ok, minim;
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;
    for(i = 0; i <= k + 10000; i ++){
        if(w[i] == 1){
            for(j = 1; j <= n; j ++){
                if(w[i + v[j].first] == 0){
                    w[i + v[j].first] = 1;
                    t[i + v[j].first] = t[i] + v[j].second;
                }
                else
                    if(w[i + v[j].first] == 1){
                        if(t[i +v[j].first] > t[i] + v[j].second)
                            t[i +v[j].first] > t[i] + v[j].second;
                    }
            }
            if(i >= k && t[i] < minim)
                minim = t[i];
        }
    }
    fout << minim;
    return 0;
}