Pagini recente » Cod sursa (job #1685990) | Cod sursa (job #1369386) | Cod sursa (job #879849) | Cod sursa (job #210145) | Cod sursa (job #2359979)
#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[1001][20000], mnn;
void Read()
{
fin >> n >> E;
for(int i = 1; i <= n; i++)
{
fin >> v[i] >> c[i];
s += v[i];
s2 += c[i];
mnn = min(c[i], mnn);
}
if( s < E)
{
fout << "-1\n";
exit(0);
}
if(s == E)
{
fout << s2 << "\n";
exit(0);
}
}
void Solve()
{
for(int i=0;i <= E;i++)
dp[1][i]=1000000;
for(int i=2;i<=n;i++)
{
for(int j = 1; j <= E; j++)
if(j >= v[i])
dp[i][j]=min(dp[i - 1][j], dp[i - 1][j - v[i]] + c[i]);
else dp[i][j] = min(dp[i - 1][j], c[i]);
}
fout << dp[n][E];
}
int main()
{
Read();
Solve();
return 0;
}