Pagini recente » Cod sursa (job #1792585) | Cod sursa (job #2150785) | Cod sursa (job #3146799) | Cod sursa (job #2686197) | Cod sursa (job #1895641)
#include <bits/stdc++.h>
using namespace std;
ifstream f("energii.in");
ofstream g("energii.out");
int n,w,s;
int a[2][10011002];
int s1[1002],s2[1002];
int main()
{
f>>n>>w;
for(int i=1; i<=n; i++)
{
f>>s1[i]>>s2[i];
s+=s1[i];
}
int ans1=INT_MAX,ans2=INT_MAX;
int q=1;
if(s<w)g<<-1;
else
{
int q1=1,q2=0;
for(int k=1; k<=n; k++)
{
for(int j=s2[k]; j<=s; j++)
{
a[q1][j]=max(a[q2][j-s2[k]]+s1[k],a[q2][j]);
if(a[q1][j]>=w&&j<ans1)
{
ans2=a[q1][j];
ans1=j;
}
}
for(int j=1;j<=s;j++){
a[q2][j]=a[q1][j];
}
q1-=q;
q2+=q;
q*=-1;
}
g<<ans1;
}
return 0;
}