Pagini recente » Monitorul de evaluare | Cod sursa (job #748991) | Istoria paginii runda/lll | Cod sursa (job #946662) | Cod sursa (job #2710811)
#include <bits/stdc++.h>
#define ll long long
//#define int ll
using namespace std;
ifstream in ("energii.in");
ofstream out ("energii.out");
int N, E;
vector <pair <int , int> > v;
int ans[23001];
main()
{
in >> N >> E;
for (int i = 1;i<=N;++i)
{
int a, b;
in >> a >> b;
v.push_back({a,b});
}
for (int i = 1;i<=20004;++i)
ans[i] = 1<<30;
for (auto i:v)
{
int eng = i.first;
int cost = i.second;
for (int j = 20004 - eng;j>=0;--j)
if (ans[j])
ans[j + eng] = min(ans[j + eng], ans[j] + cost);
ans[eng] = min(ans[eng], cost);
}
int anss = 1<<30;
for (int i = E; i<=15000;++i)
anss = min (anss, ans[i]);
out << anss << '\n';
return 0;
}