pair的常见用法:当想把2个元素绑在一起作为1个合成元素,又不想因此定义结构体时,使用pair可以作为1个替代品,pair中只有2个元素,分别是first,second,像访问结构体那样去访问即可。
代码:
#include<bits/stdc++.h>
using namespace std;
typedef pair<int,int> PII;
map<PII,vector<int>>mp;
struct s
{
int x,y;
}a[100009];
int main()
{
int n;
cin>>n;
for(int i=1;i<=n;i++)
cin>>a[i].x>>a[i].y;
for(int i=1;i<=n;i++)
for(int j=i+1;j<=n;j++)
for(int k=j+1;k<=n;k++)
{
int x=a[i].x+a[j].x+a[k].x;
int y=a[i].y+a[j].y+a[k].y;
PII p={x,y};
if(mp.count(p)) //出现的次数
{
cout<<"YES"<<endl;
cout<<i<<' '<<j<<' '<<k<<endl;
for(auto s:mp[p]) cout<<s<<' ';
cout<<endl;
return 0;
}
else
{
mp[p].push_back(i);
mp[p].push_back(j);
mp[p].push_back(k);
}
}
cout<<"NO"<<endl;
return 0;
}