For this Question: Given an array of integers, find two numbers such that they add up to a specific target number k.
Output the indices of the elements that add up to the sum (array is 1 indexed).
If multiple solutions exist, output the one where index2 is minimum. If there are multiple solutions with the minimum index2, choose the one with minimum index1 out of them.

For example:
array A[] = 1 1 3 2 2
k = 3
Output: 1 4
Explanation: pair of indices which gives target k are: (1, 4), (1, 5), (2, 4), (2, 5).  Among all such pairs (1, 4) satisfies above condition.The first line contain integers N and k, the number of elements in the array and the target sum.
The second line of the input contains N singly spaces integers.


Constraints:-
2 <= N <= 100000
1 <= A[i] <= 1000000000
1 <= k <= 2000000000Output two integers the indices of the two elements. It is guaranteed that the ans  will always existSample Input
5 3
1 1 3 2 2

Sample Output
1 4

Explanation: The satisfying pairs are (1, 4), (2, 4), (1, 5), (2, 5).

Sample Input:
2 2
1 1

Sample Output:
1 2, I have written this Solution Code: #include <bits/stdc++.h>
using namespace std;


int main(){
long long  n,k;
cin>>n>>k;
long long a[n];
for(int i=0;i<n;i++){
    cin>>a[i];
}
unordered_map<long long ,int > m;
long long x;
for(int i=0;i<n;i++){
    x=k-a[i];

    if(m.find(x)!=m.end()){
        cout<<m[x]+1<<" "<<i+1;
        return 0;
    }
    if(m.find(a[i])==m.end()){m[a[i]]=i;}
}


}
, In this Programming Language: C++, Now tell me if this Code is compilable or not?