#include <stdio.h>
#define MAX 100000

void printPairs(int arr[], int arr_size, int sum)
{
    int i = 0;
    int temp = 0;
    int binMap[MAX] = {0}; /*initialize hash map as 0*/

    for(i = 0; i < arr_size; i++)
    {
	temp = sum - arr[i];
	if(temp >= 0 && binMap[temp] == 1)
	{
	    printf("Pair with given sum %d is (%d, %d) \n", sum, arr[i], temp);
	}
	binMap[arr[i]] = 1;
    }
}

/* Driver program to test above function */
int main()
{
    int A[] = {12, 4, 45, 6, 10, 12};
    int sum = 16;
    int arr_size = 6;

    printPairs(A, arr_size, sum);

    return 0;
}
