Pagini recente » Cod sursa (job #2061458) | Cod sursa (job #1657017) | Cod sursa (job #2564636) | Cod sursa (job #17987) | Cod sursa (job #1401197)
/*#include <cstdio>
#include <algorithm>
using namespace std;
int Gmax,n,g[1001],v[1001],i,j,k,
double rap[1001],aux;
int main()
{freopen("energii.in","r",stdin);
freopen("energii.out","w",stdout);
scanf("%d%d",&n,&k);
for(i=1;i<=n;i++)
{scanf("%d%d",&v[i],&g[i]);
rap[i]=v[i]/g[i];
}
for(i=1;i<=n;i++)
{mx=a[i];
q=i
for(j=i+1;j<=n;i++)
if(a[j]>mx){mn=a[j];q=j;}
aux=rap[i];
rap[i]=rap[q];
rap[q]=aux;
aux=v[i];
v[i]=v[q];
v[q]=aux;
aux=g[i];
g[i]=g[q];
g[q]=aux;
}
for(i=1;i<=n;i++)
{c=c+g[i];
s=s+
}
}
*/
#include <cstdio>
#include <algorithm>
using namespace std;
int Gmax,n,a[2][10001],g[1001],v[1001],i,j,k;
int main()
{freopen("energii.in","r",stdin);
freopen("energii.out","w",stdout);
scanf("%d%d",&n,&k);
for(i=1;i<=n;i++)
{scanf("%d%d",&v[i],&g[i]);
if(g[i]>Gmax) Gmax=Gmax+g[i];
}
for(i=1;i<=n;i++)
{for(j=1;j<=Gmax;j++)
{if(g[i]>j) a[1][j]=a[0][j];
else{a[1][j]=max(a[0][j],v[i]+a[0][j-g[i]]);
}
}
for(j=1;j<=Gmax;j++)
a[0][j]=a[1][j];
}
for(i=1;i<=Gmax;i++)
if(a[1][i]>=k){printf("%d",i);break;}
if(a[1][Gmax]<k)printf("-1");
}