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