#2269. 四数之和
四数之和
当前没有测试数据。
using namespace std;
int n,x,a[1005];
int main()
{
cin>>n>>x;
// 哈希表: 两数和 -> (idx1,idx2)
unordered_map<int,pair<int,int>> mp;
for(int i=1;i<=n;i++)
{
cin>>a[i];
}
for(int i=1;i<=n;i++)
{
for(int j=i+1;j<=n;j++)
{
mp[a[i]+a[j]]={i,j};
}
}
for(int j=1;j<=n;j++)
{
for(int i=1;i<j;i++)
{
int t=a[i]+a[j];
int tar=x-t;
if(mp.count(tar))
{
auto [idx1,idx2]=mp[tar];
if(idx1!=idx2&&idx1!=j&&idx1!=i&&idx2!=i&&idx2!=j&&i!=j)
{
cout<<i<<' '<<j<<' '<<idx1<<' '<<idx2;
return 0;
}
}
}
}
cout<<-1;
return 0;
}