Cod sursa(job #1517454)

Utilizator BogdacutuSeniuc Bogdan Bogdacutu Data 4 noiembrie 2015 12:39:16
Problema Energii Scor 5
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.67 kb
#include <iostream>
#include <fstream>
#include <algorithm>

#define MAX_N 1000
#define MAX_W 5000
#define MAX_S MAX_N * MAX_W

using namespace std;

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

int w[MAX_N], v[MAX_N];
int m[MAX_S + 1];

int main() {
	int n, W, s = 0;
	fin >> n >> W;
	for (int i = 0; i < n; i++) {
		fin >> v[i] >> w[i];
		s += w[i];
	}
	for (int i = 0; i < s; i++) {
		m[i] = 0;
	}
	for (int i = 0; i < n; i++) {
		for (int j = 0; j <= s; j++) {
			if (w[i] <= j) {
				m[j] = max(m[j], m[j - w[i]] + v[i]);
			}
		}
	}
	for (int i = 0; i <= s; i++) {
		if (m[i] >= W) {
			fout << i << endl;
			break;
		}
	}
}