#include <iostream>
#include <algorithm>
using namespace std;
int wis[10002]={0};
int main() {
int n,w;
cin>>n>>w;
for(int i=0;i<n;i++){
int v1,w1;
cin>>v1>>w1;
if(w1>w)continue;
for(int j=10000-v1;j>0;j--){
if(wis[j]==0)continue;
int w2=wis[j]+w1;
if(w2>w)continue;
int v2=j+v1;
if(wis[v2]==0){
wis[v2]=w2;
}else{
wis[v2]=min(wis[v2],w2);
}
}
if(wis[v1]==0){
wis[v1]=w1;
}else{
wis[v1]=min(wis[v1],w1);
}
}
int ans=0;
for(int i=0;i<=10000;i++){
if(wis[i]>0)ans=i;
}
cout<<ans<<"\n";
}
最終更新:2016年11月06日 09:35