1 #include<stdio.h> 2 #include<string.h> 3 #define N 200105 4 int f[N+10]; 5 int Max(int x,int y) 6 { 7 if(x>y) 8 return x; 9 return y; 10 } 11 int main() 12 { 13 int n,i,j,x,y; 14 scanf("%d",&n); 15 for(i=0;i<=N;i++) 16 f[i]=-N; 17 f[100000]=0; 18 while(n--) 19 { 20 scanf("%d%d",&x,&y); 21 if(x<0&&y<0) 22 continue; 23 else if(x>0) 24 { 25 for(i=200000;i>=x;i--) 26 { 27 f[i]=Max(f[i],f[i-x]+y); 28 } 29 } 30 else 31 { 32 for(i=0;i<=200000+x;i++) 33 f[i]=Max(f[i],f[i-x]+y); 34 } 35 } 36 int max=-N; 37 for(i=200000;i>=100000;i--) 38 { 39 if(f[i]>0) 40 max=Max(max,f[i]+i-100000); 41 } 42 if(max>0) 43 printf("%d\n",max); 44 else 45 printf("0\n"); 46 return 0; 47 } 48 /* 49 5 50 -5 7 51 8 -6 52 6 -3 53 2 1 54 -8 -5 55 */