# A problem with MAXSEGM

Can anyone tell me what is the problem with the following code?

``````import java.io.IOException;
import java.util.Scanner;

class Codechef
{
public static void main (String[] args) throws IOException
{
Scanner sc = new Scanner(System.in);
int t = sc.nextInt();
long maxsum, x;
Codechef ob = new Codechef();
for(int i=1;i<=t;i++) {
maxsum = 0;
x = 0;
int n = sc.nextInt();
long w[][] = new long[n][2];
long c[][] = new long[n][2];

for(int j=0;j<n;j++) {
c[j][0] = sc.nextInt();
}

w[0][0] = sc.nextInt();
w[0][1] = w[0][0];
c[0][1] = w[0][0];
maxsum = w[0][0];
for(int j=1;j<n;j++) {
w[j][0] = sc.nextInt();
w[j][1] = w[j][0] + w[j-1][1];
int check = ob.searchFor(c, c[j][0], j);
if(check > -1) {
x = w[check][1];
c[j][1] = w[j][1] - x;
} else {
c[j][1] = w[j][1] - x;
}
if(c[j][1] > maxsum)
maxsum = c[j][1];
}

System.out.println(maxsum);
}
}

int searchFor(long c[][], long num, int j) {
int i;
for(i=j-1;i>=0;i--) {
if(c[i][0] == num)
break;
}
return i;
}
}
``````

Tested fine against various inputs

Here is the test case-

``````Input
1
5
0 1 1 0 1
50 60 70 60 90
Output
190
Expected Output
150
``````

This is one of the tricky edge cases here.

//