I'm getting WA on that problem and can't figure out why ... anyone can help ?
import java.io.*;
import java.util.*;
public class Main {
static boolean pair_maker(int[] friends,int key,int pos){
int low = pos,high = friends.length-1,mid;
while(low <= high){
mid = (low + high)/2;
if(friends[mid] == key)
return true;
else if(friends[mid] > key)
high = mid-1;
else
low = mid+1;
}
return false;
}
public static void main (String[]ar)throws Exception{
BufferedReader read = new BufferedReader (new InputStreamReader(System.in));
int t = Integer.parseInt(read.readLine());
while(t-->0){
int counter = 0;
StringTokenizer st = new StringTokenizer(read.readLine());
int[] friends = new int[Integer.parseInt(st.nextToken())];
int price = Integer.parseInt(st.nextToken());
st = new StringTokenizer(read.readLine());
for(int i=0;i<friends.length;i++)
friends[i] = Integer.parseInt(st.nextToken());
Arrays.sort(friends);
for(int i=0;i<friends.length;i++){
if(pair_maker(friends,(price - friends[i]),i)){
counter++;
}
}
System.out.println(counter);
}
}
}