Pagini recente » Cod sursa (job #2920812) | Cod sursa (job #2351953) | Cod sursa (job #1417816) | Cod sursa (job #1719532) | Cod sursa (job #1320795)
#include <fstream>
#include <algorithm>
using namespace std;
ifstream fin("energii.in");
ofstream fout("energii.out");
#define INF 0x3f3f3f3f
#define Dim 10002
#define n G
int G, W;
int E[Dim], C[Dim], D[Dim/2];
void Read();
void Dyn();
int main()
{
Read();
Dyn();
fin.close();
fout.close();
return 0;
}
void Dyn()
{
for ( int i = 1; i <= W; ++i )
D[i] = INF;
for ( int i = 1; i <= n; ++i )
for ( int j = W; j >= 0; --j )
if ( j >= E[i] ) {
if ( D[j] > D[j-E[i]] + C[i] )
D[j] = D[j-E[i]] + C[i];
}
else
D[j] = min(D[j],C[i]);
if ( D[W] != INF )
fout << D[W];
else
fout << -1;
}
void Read()
{
fin >> G >> W;
for ( int i = 1; i <= G; ++i )
fin >> E[i] >> C[i];
}