Pagini recente » Cod sursa (job #1512614) | Istoria paginii runda/wellcodesimulareav-11martie/clasament | Cod sursa (job #658068) | Cod sursa (job #2282570) | Cod sursa (job #928631)
Cod sursa(job #928631)
#include <fstream>
using namespace std;
ifstream ka("energii.in");
ofstream ki("energii.out");
int w[5001],p[5001],d[2][10001000],n,g,minim,s;
long long ss;
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];
s+=p[i];
ss+=w[i];}
if(s<g)
ki<<"-1";
else
{
for(int j=1;j<=n;j++)
{
for(int cw=1;cw<=ss;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];
}
}
ki<<minim;
}
}