牛客假日团队赛15
:A:篝火晚会:将想要的给它,以条件去拍队,不符合就-1了,return 0;
#include<bits/stdc++.h>
#define MAX_INT ((unsigned)(-1)>>1)
#define MIN_INT (~MAX_INT)
#define pi 3.1415926535898
#define ll long long
using namespace std;
int l[50055],r[50055];
int a[50055];
int dis1[50055],dis2[50055];
int main(void)
{
int n;cin>>n;
for(int i=1;i<=n;i++){
cin>>l[i]>>r[i];
}
a[n]=l[1],a[1]=1,a[2]=r[1];
for(int i=3;i<=n-1;i++){
if(a[i-2]==l[a[i-1]]){
a[i]=r[a[i-1]];
}
else if(a[i-2]==r[a[i-1]]){
a[i]=l[a[i-1]];
}
else{
cout<<"-1";
return 0;
}
}
for(int i=1;i<=n;i++){
dis1[(i-a[i]+n)%n]++;
dis2[(i+a[i]+n)%n]++;
}
int max1=0;
for(int i=0;i<=n;i++){
max1=max(max1,max(dis1[i],dis2[i]));//看看最多有多少人坐在原位
}
cout<<n-max1;
return 0;
}