Pagini recente » Cod sursa (job #2560949) | Cod sursa (job #2038780) | Cod sursa (job #1467147) | Cod sursa (job #461773) | Cod sursa (job #2359614)
#include <bits/stdc++.h>
using namespace std;
ifstream fin ("energii.in");
ofstream fout ("energii.out");
int n, E, c[1002], v[1002], s, s2;
int dp[101][20000];
void Read()
{
fin >> n >> E;
for(int i = 1; i <= n; i++)
{
fin >> v[i] >> c[i];
s += v[i];
s2 += c[i];
}
if( s < E)
{
fout << "-1\n";
exit(0);
}
}
void Solve()
{
int mn = 99999999;
dp[1][c[1]] = v[1];
for(int i = 2; i <= n; i++)
for(int j = 1; j <= s2; j++)
{
dp[i][j] = dp[i - 1][j];
if(j - c[i] >= 0)
dp[i][j] = max(dp[i][j], dp[i - 1][j - c[i]] + v[i]);
if(dp[i][j] >= E)
mn = min(mn, j);
}
fout << mn;
}
int main()
{
Read();
Solve();
return 0;
}