#include <iostream>
#include<bits/stdc++.h>
using namespace std;
using ll = long long;
#define fo(i,start,end) for(int i=start;i<end;i++)
vector<pair<int,int>> FindOptimalPairs(vector<int>&arr,int k){
vector<pair<int,int>>result;
// arrr = {1,5,3,4,2}, k = 2
unordered_map<int,int>mp; //element -> index
fo(j,0,5){
int a1 = k + arr[j]; // 2 + 3 = 5
int a2 = arr[j] - k; // 3 - 2 = 1
if(mp.find(a1) != mp.end()){
result.push_back({mp[a1],j});
}
if(mp.find(a2) != mp.end()){
result.push_back({mp[a2],j});
}
mp[arr[j]] = j;
}
//for loop ends here
return result;
}
int main() {
// your code goes here
vector<int>arr = {1,5,3,4,2};
ll k = 2;
vector<pair<int,int>>ans = FindOptimalPairs(arr,k);
cout<<"Pairs are:"<<endl;
for(pair<int,int>& it:ans){
int fp = it.first;
int sp = it.second;
cout<<"{"<<fp+1<<","<<sp+1<<"},"<<endl; //one based indexing
}
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZTxiaXRzL3N0ZGMrKy5oPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwp1c2luZyBsbCA9IGxvbmcgbG9uZzsKI2RlZmluZSBmbyhpLHN0YXJ0LGVuZCkgZm9yKGludCBpPXN0YXJ0O2k8ZW5kO2krKykKCnZlY3RvcjxwYWlyPGludCxpbnQ+PiBGaW5kT3B0aW1hbFBhaXJzKHZlY3RvcjxpbnQ+JmFycixpbnQgayl7Cgl2ZWN0b3I8cGFpcjxpbnQsaW50Pj5yZXN1bHQ7CgkvLyBhcnJyID0gezEsNSwzLDQsMn0sIGsgPSAyCgl1bm9yZGVyZWRfbWFwPGludCxpbnQ+bXA7IC8vZWxlbWVudCAtPiBpbmRleAoJZm8oaiwwLDUpewoJCWludCBhMSA9IGsgKyBhcnJbal07IC8vIDIgKyAzID0gNQoJCWludCBhMiA9IGFycltqXSAtIGs7IC8vIDMgLSAyID0gMQoJCWlmKG1wLmZpbmQoYTEpICE9IG1wLmVuZCgpKXsKCQkJcmVzdWx0LnB1c2hfYmFjayh7bXBbYTFdLGp9KTsKCQl9CgkJIGlmKG1wLmZpbmQoYTIpICE9IG1wLmVuZCgpKXsKCQkJcmVzdWx0LnB1c2hfYmFjayh7bXBbYTJdLGp9KTsKCQl9CgkJbXBbYXJyW2pdXSA9IGo7Cgl9CgkvL2ZvciBsb29wIGVuZHMgaGVyZQoJcmV0dXJuIHJlc3VsdDsKfQoKCmludCBtYWluKCkgewoJLy8geW91ciBjb2RlIGdvZXMgaGVyZQoJdmVjdG9yPGludD5hcnIgPSB7MSw1LDMsNCwyfTsKCWxsIGsgPSAyOwoJdmVjdG9yPHBhaXI8aW50LGludD4+YW5zID0gRmluZE9wdGltYWxQYWlycyhhcnIsayk7Cgljb3V0PDwiUGFpcnMgYXJlOiI8PGVuZGw7Cglmb3IocGFpcjxpbnQsaW50PiYgaXQ6YW5zKXsKCQlpbnQgZnAgPSBpdC5maXJzdDsKCQlpbnQgc3AgPSBpdC5zZWNvbmQ7CgkJY291dDw8InsiPDxmcCsxPDwiLCI8PHNwKzE8PCJ9LCI8PGVuZGw7IC8vb25lIGJhc2VkIGluZGV4aW5nCgl9CglyZXR1cm4gMDsKfQ==