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 */