题目链接:
https://codeforces.com/problemset/problem/1433/D
思路:
因为只要相连的城市不是属于同一个帮派,可以间接相连。
所以只要找到两个不同的即可。
AC代码
#include<bits/stdc++.h>
using namespace std;
const int N=5010;
int t;
int a[N];
int k;
int main()
{
cin>>t;
while(t--)
{
int n;
cin>>n;
k=0;
for(int i=1;i<=n;i++)
{
cin>>a[i];
if(a[i]!=a[1])
{
k=i;
}
}
if(!k)
{
cout<<"NO"<<endl;continue;
}
else
{
cout<<"YES"<<endl;
for(int i=2;i<=n;i++)
{
if(a[i]==a[1]) cout<<k<<" "<<i<<endl;
else cout<<i<<" "<<1<<endl;
}
}
}
return 0;
}