Cod sursa(job #433340)

Utilizator dacyanMujdar Dacian dacyan Data 3 aprilie 2010 16:24:28
Problema Energii Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.76 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[INF];

long a[INF];
long n, s;
int i, j, imax;

int main()
{
	fin >> n >> s;
	for ( i = 1; i <= n; i++)
		fin >> c[i].e >> c[i].v;
	fin.close();
	
	for ( i = 0; i <= s; i++)
		a[i] = INF;
	a[c[1].e] = c[1].v;
	a[0] = 0;
	for ( i = 0; i <= s; i++)
		for ( j = 1; j <= n; j++)
			if ( a[i] != INF)
				if ( a[i+c[j].e] > a[i] + c[j].v)
				{
						a[i+c[j].e] = a[i] + c[j].v;
						if ( i + c[j].e > imax) imax = i + c[j].e;
				}
	long long  min = a[s];
	for ( i = s + 1; i <= imax; i++)
		if ( a[i] < min) min = a[i];
				
	fout << min << '\n';
	fout.close();
	return 0;
}