Pagini recente » Cod sursa (job #594390) | Cod sursa (job #1847235) | Cod sursa (job #1615770) | Cod sursa (job #1919668) | Cod sursa (job #3277492)
#include <bits/stdc++.h>
std::ifstream fin("energii.in");
std::ofstream fout("energii.out");
const int SIZE = 1e3 + 5;
const int MAXWEIGHT = 1e4;
const int INF = 1e9;
int n, W;
int weight[SIZE], energy[SIZE];
int ans;
int64_t max(std::vector<int64_t> v){ return *std::max_element(v.begin(), v.end()); }
int64_t min(std::vector<int64_t> v){ return *std::min_element(v.begin(), v.end()); }
int main()
{
fin >> n >> W;
for(int i = 1; i <= n; ++i)
fin >> energy[i] >> weight[i];
std::vector<int> dp(MAXWEIGHT + 5, INF);
dp[0] = 0;
for(int i = 1; i <= n; ++i)
for(int j = MAXWEIGHT - energy[i]; j >= 0; --j)
dp[j + energy[i]] = std::min(dp[j + energy[i]], dp[j] + weight[i]);
ans = INF;
for(int i = W; i <= MAXWEIGHT; ++i)
ans = std::min(ans, dp[i]);
fout << (ans == INF? -1 : ans);
return 0;
}