class Solution {
public:
vector<int> twoSum(vector<int>& nums, int target) {
unordered_multimap<int,int> numbers;
for(int i = 0; i < nums.size(); i++){
numbers.insert(pair<int,int>{nums[i],i});
}
for (unordered_multimap<int,int>::iterator i = numbers.begin(); i != numbers.end(); i++){
unordered_multimap<int,int>::iterator it = numbers.find(target-(*i).first);
if(it == i && numbers.count((*it).first) >= 2){
pair<int,int> tmp = *i;
numbers.erase(i);
it = numbers.find(target-tmp.first);
return vector<int>{min(tmp.second,(*it).second),max(tmp.second,(*it).second)};
}
else if(it != i && it != numbers.end()){
return vector<int>{(*i).second,(*it).second};
}
}
return vector<int>{0,0};
}
};