Pagini recente » Cod sursa (job #2349193) | Cod sursa (job #2574411) | Cod sursa (job #1606784) | Cod sursa (job #1168928) | Cod sursa (job #1672194)
#include <fstream>
#define NM 1005
#define VAL 10000005
using namespace std;
ifstream fin("energii.in");
ofstream fout("energii.out");
int N, G, i, mn;
int c[NM], e[NM];
int dp[VAL], s, j;
bool ok[VAL];
int main()
{
mn=2000000000;
ok[0]=true;
fin >> G >> N;
for (i=1; i<=G; i++)
{
fin >> e[i] >> c[i];
s+=e[i];
}
if (s<N)
fout << -1 << '\n';
else
{
for (i=1; i<=G; i++)
{
for (j=0; j<=s-e[i]; j++)
{
if (ok[j]==true)
{
ok[j+e[i]]=true;
if (dp[j+e[i]]==0)
dp[j+e[i]]=dp[j]+c[i];
else
dp[j+e[i]]=min(dp[j]+c[i], dp[j+e[i]]);
if (j+e[i]>=N)
mn=min(mn, dp[j+e[i]]);
}
}
}
fout << mn << '\n';
}
fin.close();
fout.close();
return 0;
}