Pagini recente » Cod sursa (job #2288428) | Cod sursa (job #2344562) | Cod sursa (job #2766957) | Cod sursa (job #3290426) | Cod sursa (job #928358)
Cod sursa(job #928358)
#include <fstream>
using namespace std;
ifstream ka("energii.in");
ofstream ki("energii.out");
int w[5001],p[5001],d[2][10001],n,g,minim;
int maxim(int t,int k)
{
if(t>=k)
return t;
return k;
}
int main()
{
ka>>n>>g;
minim=5001;
for(int i=1;i<=n;i++)
ka>>p[i]>>w[i];
for(int j=1;j<=n;j++)
{
for(int cw=1;cw<=5001;cw++)
{
d[1][cw]=d[0][cw];
if(w[j]<=cw)
d[1][cw]=maxim(d[1][cw],d[0][cw-w[j]]+p[j]);
if(d[1][cw]>=g&&cw<minim)
minim=cw;
}
for(int cw=1;cw<=g;cw++)
{
d[0][cw]=d[1][cw];
}
}
if(minim<5001)
ki<<minim;
else
ki<<"-1";
}