#include #define max(a,b) (((a)>(b))?(a):(b)) long dp[100][100001],v[100],w[100]; int main(int argc, char const *argv[]){ int n,i,f=0; long V,j; scanf("%d",&n); for(i=0;i=w[i]) dp[i][j]=max(dp[i][j],dp[i-1][j-w[i]]+v[i]); } } for(j=1;j<=100000;j++){ if(f==0 && dp[n-1][j]==V){ printf("%ld\n",j); f=1; }else if(f==1 && dp[n-1][j]>V){ f=2; printf("%ld\n",j-1); break; } } if(f==1) printf("inf\n"); return 0; }