Pagini recente » Cod sursa (job #1830970) | Cod sursa (job #626109) | Cod sursa (job #980627) | Cod sursa (job #423584) | Cod sursa (job #1556710)
#include<fstream>
#include<cstring>
#define NMax 1006
#define inf 123456789
using namespace std;
ifstream fin("energii.in");
ofstream fout("energii.out");
int G,W,Sol;
int E[NMax],P[NMax],R[4][5*NMax];
bool L1=0,L2=1;
void Read()
{
fin>>G>>W;
for(int i=1;i<=G;++i)
fin>>E[i]>>P[i];
}
void Solve()
{
for(int i=1;i<=W;++i)
R[L1][i] = R[L2][i] = inf;
for(int i=2;i<=G;++i)
{
for(int j=0;j<=W;++j)
{
if(E[i] <= j)
R[L2][j] = min(R[L1][j],R[L1][j-E[i]]+P[i]);
else
R[L2][j] = min(R[L1][j],P[i]);
}
L1=1-L1;
L2=1-L2;
}
}
void Print()
{
if(R[L1][W] == 0 || R[L1][W] == inf) fout<<"-1\n";
else fout<<R[L1][W]<<"\n";
}
int main()
{
Read();
Solve();
Print();
fin.close();
fout.close();
return 0;
}