Pagini recente » Cod sursa (job #2251076) | Cod sursa (job #1139150) | Cod sursa (job #1230851) | Cod sursa (job #1309170) | Cod sursa (job #1267800)
#include<fstream>
using namespace std;
int n, i, g, maxim, j;
int f[100001];
pair<int, int> v[5001];
ifstream fin("rucsac.in");
ofstream fout("rucsac.out");
int main(){
fin>> n >> g;
for(i = 1; i <= n; i++){
fin>> v[i].first >> v[i].second;
}
for(i = 1; i <= 100000; i++){
f[i] = 2000000000;
}
for(j = 1; j <= n; j++){
for(i = 100000; i >= 0; i--){
if(f[i] != 2000000000 && i + v[j].second <= 100000){
if(f[i] + v[j].first <= g){
if(f[i] + v[j].first < f[i+v[j].second]){
f[i+v[j].second] = f[i] + v[j].first;
}
}
}
}
}
for(i = 100000; i >= 0; i--){
if(f[i] != 2000000000 ){
maxim = i;
break;
}
}
fout<< maxim;
return 0;
}