Cod sursa(job #712478)

Utilizator okros_alexandruOkros Alexandru okros_alexandru Data 13 martie 2012 15:12:18
Problema Energii Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.59 kb
#include <fstream>
#define WMAx 5100
#define min(a,b) ((a)<(b)?(a):(b))
using namespace std;

int N,W,Sol,A[2*WMAx];

int main() {
	
	int i,j,energie,cost;
	ifstream in("energii.in");
	ofstream out("energii.out");
	
	in>>N>>W;
	
	for(i=1,A[0]=1;i<=N;i++) {
		
		in>>energie>>cost;
		
		for(j=WMAx;j>=0;j--)
			if(A[j])
				if(!A[j+energie]||A[j+energie]>A[j]+cost)
					A[j+energie]=A[j]+cost;
		
		}
	
	for(i=W,Sol=2*WMAx;i<2*WMAx;i++)
		if(A[i])
			Sol=min(Sol,A[i]);
	
	if(Sol==2*WMAx)
		Sol=0;
	
	out<<(Sol-1)<<'\n';
	
	in.close();
	out.close();
	
	return 0;
	
}