Cod sursa(job #1276302)

Utilizator alexandra_udristoiuUdristoiu Alexandra Maria alexandra_udristoiu Data 26 noiembrie 2014 10:28:19
Problema Energii Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.7 kb
#include<fstream>
using namespace std;
int n, i, j, g;
int f[5001];
pair<int, int> v[1001];
ifstream fin("energii.in");
ofstream fout("energii.out");
int main(){
	fin>> n >> g;
	for(i = 1; i <= n; i++){
		fin>> v[i].first >> v[i].second;
	}
	for(i = 1; i <= g; i++){
		f[i] = 10000000;
	}
	for(i = 1; i <= n; i++){
		for(j = g; j >= 0; j--){
			if(f[j] != 10000000){
				if(j + v[i].first >= g){
					if(f[g] > f[j] + v[i].second){
						f[g] = f[j] + v[i].second;
					}
				}
				else{
					if(f[j+v[i].first] > f[j]+v[i].second){
						f[j+v[i].first] = f[j] + v[i].second;
					}
				}
			}
		}
	}
	if(f[g] == 10000000){
		fout<< -1;
		return 0;
	}
	fout<< f[g];
	return 0;
}