Cod sursa(job #818491)

Utilizator mariamFiciu Maria mariam Data 17 noiembrie 2012 16:00:44
Problema Energii Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.57 kb
#include<fstream>
using namespace std;
int v[5003];
int a[1003], b[1003], c, g, s, i, j;
int main()
{
	ifstream f("energii.in");
	ofstream fout("energii.out");
	f>>c>>g;
	for(i=1;i<=c;i++)
	{
		f>>a[i]>>b[i];
		s+=b[i];
	}
	s++;
	v[0]=0;
	for(i=1;i<=g;i++)
		v[i]=s;
	for(i=1;i<=c;i++)
	{
		for(j=g-1;j>=0;j--)
			if(v[j]!=s) {
				if (j+a[i] <= g) {
					if(v[j+a[i]]>v[j]+b[i])
						v[j+a[i]]=v[j]+b[i];
				} else {
					if (v[g] > v[j]+b[i])
						v[g] = v[j] + b[i];
				}
			}
	}
	if (v[g] == s)
		fout<<-1;
	else
		fout<<v[g];
	return 0;
}