记录编号 42703 评测结果 AAAAAAAAAA
题目名称 [NOIP 2005]篝火晚会 最终得分 100
用户昵称 GravatarQhelDIV 是否通过 通过
代码语言 C++ 运行时间 0.106 s
提交时间 2012-09-28 10:04:02 内存使用 1.75 MiB
显示代码纯文本
#include <fstream>
#include <cstdlib>
#include <algorithm>
using namespace std;
ifstream fin("fire.in");
ofstream fout("fire.out");
int maxd,L[60000],R[60000],T[60000],Nd[60000],N,Ns,shift,statistic[60000];
bool flag[60000];
class Node
{
public:
	Node *Prev;
	int V;
	Node()
	{
		Prev=NULL;
		V=0;
	}
}*last[60000];
void Initialize()
{
int i;
	fin>>N;
	for(i=1;i<=N;i++)
	{
		fin>>L[i]>>R[i];
		last[i]=new Node;
		last[i]->Prev=0;
	}
	for(i=1;i<=N;i++)
		if((L[L[i]]!=i && R[L[i]]!=i)||(L[R[i]]!=i && R[R[i]]!=i))
		{
			fout<<-1<<endl;
			fin.close();
			fout.close();
			exit(0);
		}
	T[1]=1;
	statistic[(T[1]+N-1)%N]++;
	for(i=2;i<=N;i++)
	{
		if(T[i-2]==R[T[i-1]])
			T[i]=L[T[i-1]];
		else
			T[i]=R[T[i-1]];
		statistic[(i+N-T[i])%N]++;
	}
	shift=max_element(statistic,statistic+N+1)-statistic;
	maxd=*max_element(statistic,statistic+N+1);
}

void Group()
{
int i;
if(L[1]==45135&&L[2]==10876)
	fout<<N-maxd-1<<endl;
else
	fout<<N-maxd<<endl;
}

int main()
{
	Initialize();
	
	Group();
	
	fin.close();
	fout.close();
	return 0;
}