two sum problem in c++

C++
bool twosum(int A[], int N, int X) {
  	sort(A, A+N);
    int i = 0, j = N-1;
    while (i < j) {
        if (A[i] + A[j] == X) return true;
        else if (A[i] + A[j] > X) j--;
        else i++;
    }
    return false;
}
Source

Also in C++: