#include <iostream>

using namespace std;

bool findTwoNumWithSum(int *nArray, int n, int sum, int &num1, int &num2) {

  if(nArray==NULL || n<1)
    return false;

  int low = 0;
  int high = n-1;

  while(low<high) {
    if(nArray[low]+nArray[high]==sum) {
      num1 = nArray[low];
      num2 = nArray[high];

      return true;
    } else if(nArray[low]+nArray[high]>sum) {
      high--;
    } else {
      low++;
    }
  }

  return false;
}

int main(int argc, char **argv) {

  int array[] = {1,2,4,7,11,15};

  for(int i=0; i<6; i++) {
    cout << array[i] << " ";
  }
  cout << endl;

  for(int i=0; i<20; i++) {
    int num1 = -1, num2 = -1;
    if(findTwoNumWithSum(array, 6, i, num1, num2)) {
      cout << "Sum: " << i << "; num1: " << num1 << "; num2: " << num2 << endl;
    } else {
      cout << "Sum: " << i << ": Not found" << endl;
    }
  }

  return 0;
}
