Pagini recente » Cod sursa (job #2005442) | Cod sursa (job #765703) | Cod sursa (job #2196358) | Cod sursa (job #338628) | Cod sursa (job #3323966)
#include <bits/stdc++.h>
using namespace std;
ifstream fin("energii.in");
ofstream fout("energii.out");
const int INF = 1e9;
const int SIZ=1005;
int eg[SIZ], cg[SIZ];
int dp[20005];
void setup()
{
for(int i=0; i < 20005; i++)
dp[i]=INF;
}
int main()
{
setup();
int g, w;
fin >> g >> w;
int egmax = 0;
for (int i = 1; i <= g; i++)
{
fin >> eg[i] >> cg[i];
egmax = max(egmax, eg[i]);
}
int maxe = w + egmax;
dp[1] = 0;
for (int i = 1; i <= g; i++)
{
for (int j = maxe - eg[i]; j >= 0; j--)
{
if (dp[j] != INF)
{
dp[j+eg[i]] = min(dp[j+eg[i]], dp[j] + cg[i]);
}
}
}
int rez = INF;
for(int i = w; i <= maxe; i++)
rez = min(rez, dp[i]);
if(rez == INF)
fout << -1;
else
fout << rez;
return 0;
}