Cod sursa(job #433375)

Utilizator dacyanMujdar Dacian dacyan Data 3 aprilie 2010 17:22:14
Problema Energii Scor 5
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.72 kb
#include <fstream>
#include <vector>
#define INF 20002
using namespace std;

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


struct{
	int e;
	int v;
}c[1500];

int a[16000000];

int main()
{
	int n, s;
	int i, j;

	fin >> n >> s;
	
	for ( i = 1; i <= n; i++)
		fin >> c[i].e >> c[i].v;
	fin.close();
	
	for ( i = 0; i <= 16000; i++)
		a[i] = 99999999;
	a[0] = 0;
	
	for ( i = 1; i <= n; i++)
		for ( j = 0; j <= s; j++)	
		{
			
				if ( a[j+c[i].e] > a[j] + c[i].v)
						a[j+c[i].e] = a[j] + c[i].v;
				
				if ( j + c[i].e >= s && a[s] > a[j+c[i].e])
							a[s] = a[j+c[i].e];
		}
	
	if ( a[s] < 99999999) fout << a[s]; 
	else fout << "-1";
	
	fout.close();
	return 0;
}