Pagini recente » Cod sursa (job #3186915) | Cod sursa (job #2312296) | Cod sursa (job #2554115) | Cod sursa (job #3276264) | Cod sursa (job #2505911)
#include <bits/stdc++.h>
#define NRMAX 1001
using namespace std;
ifstream fin("energii.in");
ofstream fout("energii.out");
int DP[NRMAX];
int main()
{
int n,P,i,j,cost,en;
fin>>n>>P;
for(i = 1 ; i <= n; i++)
{
fin>>en>>cost;
for(j = P; j >= 1; j--)
{
if(DP[j] != 0)
{
if(j + en >= P)
{
if(DP[P] == 0)
{
DP[P] = DP[j] - cost;
}
else
{
DP[P] = max(DP[P],DP[j]-cost);
}
}
else
{
if(DP[j+en] == 0)
{
DP[j+en] = DP[j] - cost;
}
else
{
DP[j+en] = max(DP[j+en],DP[j]-cost);
}
}
}
}
if(DP[en] != 0)
DP[en] = max(DP[en],-cost);
else
DP[en] = -cost;
}
if(DP[P] == 0)
{
fout<<"-1"<<endl;
}
else
{
fout<<-DP[P]<<endl;
}
return 0;
}