Pagini recente » Cod sursa (job #926122) | Cod sursa (job #55267) | Cod sursa (job #591262) | Cod sursa (job #545102) | Cod sursa (job #862176)
Cod sursa(job #862176)
#include <fstream>
#include <cmath>
#include <algorithm>
#include <cstring>
using namespace std;
ifstream fin ("energii.in");
ofstream fout ("energii.out");
void Read ();
void Write ();
int Energy ();
int n;
int E;
struct generate{
int e, c;
} G[1005];
int En[15005];
int s;
int main ()
{
Read ();
fin.close ();
Write ();
fout.close ();
return 0;
}
void Read ()
{
fin >> n >> E;
for (int i = 0; i < n; ++i)
{
fin >> G[i].e >> G[i].c;
s = s + G[i].e;
}
}
void Write ()
{
if (s < E)
fout << "-1";
else
fout << Energy ();
return ;
}
int Energy ()
{
//memset (En, -1, sizeof(En));
for (int i = 1; i < 15005; ++i)
En[i] = 99999999;
En[0] = 0;
for (int i = 0; i < n; ++i)
for (int j = E ; j >= 0; --j)
if (En[j] != 99999999 && En[j + G[i].e] > En[j] + G[i].c)
En[j + G[i].e] = En[j] + G[i].c;
int m = 99999999;
for (int i = E; i < 15005; ++i)
if (m > En[i])
m = En[i];
return m;
}