Cod sursa(job #507782)

Utilizator Chip93Radu Ciprian Chip93 Data 6 decembrie 2010 19:35:07
Problema Energii Scor 90
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.75 kb
#include <fstream>
using namespace std;

int n,c;
struct generator
{
	int e,c;
};
ifstream in("energii.in");
ofstream out("energii.out");
generator v[1001];
int das[10001];

void scrie()
{
	for(int i=1 ; i <=12 ; ++i)
		out<<das[i]<<" ";
	out<<"\n";
}

int main()
{
	int i,j;
	in>>n>>c;
	for(i=1;i<=n;i++)
		in>>v[i].e>>v[i].c;
	for(i=1;i<=n;i++)
	{
		for(j=c;j>=0;--j)
			if(das[j])
				if(das[j+v[i].e] == 0 || das[j] + v[i].c < das[j+v[i].e])
					das[j+v[i].e]=das[j] + v[i].c;
		if(das[v[i].e] == 0 || v[i].c < das[v[i].e])
			das[v[i].e] = v[i].c;
	}
	//scrie();
	int min=1000000000;
	for(i=c;i<10001;i++)
		if(das[i] && das[i]<min)
			min=das[i];
	if(min == 1000000000)
		out<<-1;
	else
		out<<min;
	return 0;
}