Pagini recente » Cod sursa (job #2759178) | Cod sursa (job #1489021) | Cod sursa (job #2138228) | Cod sursa (job #1018269) | Cod sursa (job #1968178)
#include <fstream>
using namespace std;
ifstream fi ("energii.in");
ofstream fo ("energii.out");
int i,j,n,maxi,pt,g[5003],p[5003],lcur[10004],lpre[10004],mini;
int main()
{
fi>>n>>pt;
for (i=1;i<=n;i++)
{fi>>p[i]>>g[i];maxi=max(maxi,g[i]);}
mini=100000;
for (i=1;i<=n;i++)
{
for (j=0;j<=pt+maxi;j++)
{
// a[i][j]=a[i-1][j];
// if (g[i]<=j)
// a[i][j]=max(a[i][j],a[i-1][j-g[i]]+p[i]);
lcur[j]=lpre[j];
if (g[i]<=j)
{
lcur[j]=max(lpre[j],lpre[j-g[i]]+p[i]);
}
if (lcur[j]>=pt and j<mini) mini=j;
}
for (j=0;j<=pt+maxi;j++) {lpre[j]=lcur[j];lcur[j]=0;}
}
// for (j=1;j<=gt;j++) maxi=max(maxi,lpre[j]);
// fo<<maxi;
if (mini==100000) mini=-1;
fo<<mini;
return 0;
}