Ниже мой код, который я написал. Он успешно проходит 4 тестовых случая, но не проходит в двух тестовых случаях. Это хорошо известная проблема в хакерранке, но я до сих пор не могу понять, почему мой код не работает в этих двух тестах. Пожалуйста, помогите мне решить эту проблему. Ссылка на вопрос - https://www.hackerrank.com/challenges/closest-numbers/problem
#include <bits/stdc++.h>
using namespace std;
typedef tuple<int,int,int> tt;
bool sortbyasec(const tuple <int,int,int> &t1,const tuple <int,int,int> &t2)
{
return ((get<2>(t1) < get<2>(t2)) );
}
int main()
{
int TC;
cin>>TC;
vector <int> arr;
for(int i = 0; i<TC; i++)
{
long long int x;
cin>>x;
arr.push_back(x);
}
sort(arr.begin(),arr.end());
vector<tt> t1;
int diff;
for (size_t i = 0; i<arr.size()-1;i++)
{
diff = abs(arr[i] - arr[i+1]);
t1.push_back(tt(arr[i],arr[i+1],diff));
}
arr.clear();
sort(t1.begin(),t1.end(),sortbyasec);
long int value;
tie(ignore,ignore,value) = t1[0];
for (size_t i = 0; i < t1.size();i++)
{
if (get<2>(t1[i]) == value)
{
cout<<get<0>(t1[i])<<' '<<get<1>(t1[i])<<' ';
}
}
}