Pagini recente » Cod sursa (job #3033133) | Cod sursa (job #272811) | Cod sursa (job #2227316) | Cod sursa (job #1753071) | Cod sursa (job #2711641)
#include <fstream>
#include <map>
#include <vector>
#define fi first
#define se second
using namespace std;
ifstream fin("energii.in");
ofstream fout("energii.out");
map <int, int> dp;
int main()
{
int n, w, x, y;
fin >> n >> w;
dp[0] = 0;
for(int i = 1; i <= n; i++) {
fin >> x >> y;
for(auto it = dp.rbegin(); it != dp.rend(); it++) {
auto curr = *it;
if(curr.fi < w)
if(dp.find(curr.fi + y) != dp.end())
dp[curr.fi + y] = curr.se + x;
else dp[curr.fi + y] = max(dp[curr.fi + y], curr.se + x);
}
}
for(auto el : dp)
if(el.se >= w) {
fout << el.fi;
break;
}
return 0;
}