Pagini recente » Cod sursa (job #2881733) | Cod sursa (job #969441) | Cod sursa (job #2117813) | Cod sursa (job #2516717) | Cod sursa (job #3200403)
#include <fstream>
using namespace std;
ifstream cin("energii.in");
ofstream cout("energii.out");
int n,pmin,gmax,pt;
int p[1003],g[1003];
int mat[1003][5003];
int main()
{
cin>>n>>pmin;
for(int i=1;i<=n;++i){
cin>>p[i]>>g[i];
gmax+=g[i];
pt+=p[i];
}
if(pt<pmin){
cout<<-1;
exit(0);
}
int gminim=1000000000,rez=0;
for(int i=1;i<=n;++i)
for(int gc=0;gc<=gmax;++gc){
mat[i][gc]=mat[i-1][gc];
if(gc>=g[i])
mat[i][gc]=max(mat[i][gc],p[i]+mat[i-1][gc-g[i]]);
if(mat[i][gc]>=pmin){
if(rez==0){
rez=mat[i][gc];
gminim=gc;
}else if(gc<gminim) gminim=gc;
}
}
cout<<gminim;
return 0;
}