Cod sursa(job #2273087)

Utilizator pitradaPit-Rada Ionel-Vasile pitrada Data 30 octombrie 2018 23:47:55
Problema Energii Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.61 kb
#include<fstream>
using namespace std;
fstream fin,fout;
int n,gmax, a[5005],g,v,i,j,vmin;
int infinit=100000000;
int main(){
	fin.open("energii.in",ios::in);
	fout.open("energii.out",ios::out);
	fin>>n>>gmax;
	for(i=1;i<=gmax;i++){
		a[i]=infinit;
	}
	a[0]=0; vmin=infinit;
	for(i=1;i<=n;i++){
		fin>>g>>v;
		for(j=gmax-1;j>=0;j--){
			if(a[j]<infinit && j+g<gmax && a[j+g]>a[j]+v){
				a[j+g]=a[j]+v;
			}
			else{
				if(a[j]<infinit && j+g>=gmax && a[j]+v<vmin){
					vmin=a[j]+v;
				}
			}
		}
	}
	if(vmin==infinit)fout<<-1;
	else fout<<vmin;
	fout.close();
	fin.close();
	return 0;
}