Pagini recente » Cod sursa (job #398402) | Cod sursa (job #2580377) | Cod sursa (job #910266) | Cod sursa (job #75467) | Cod sursa (job #2771794)
#include <fstream>
using namespace std;
ifstream cin("energii.in");
ofstream cout("energii.out");
int v[5001], p[5001];
int f[10000001];
int n, sol, i, j, G, maxim;
int main () {
cin>>n>>G;
for (i=1;i<=n;i++){
cin>>p[i]>>v[i];
}
for (i=1;i<=n;i++){
for (j=maxim;j>=1;j--){
if (f[j]!=0){
if (f[j]+p[i]>f[j+v[i]]){
f[j+v[i]]=f[j]+p[i];
if(j+v[i]>maxim)
maxim=j+v[i];
}
}
}
if (p[i]>f[v[i]]){
f[v[i]]=p[i];
if(maxim<v[i])
maxim=v[i];
}
}
for (i=1;i<=maxim;i++){
if(f[i]>=G){
cout<<i;
return 0;
}
}
cout<<-1;
}