比赛 不平凡的世界 评测结果 WWWWWWTTTT
题目名称 不平凡的引线 最终得分 0
用户昵称 sro dydxh orz 运行时间 4.100 s
代码语言 C++ 内存使用 2.77 MiB
提交时间 2015-11-05 11:07:48
显示代码纯文本
#include<iostream>
#include<cstring>
#include<cstdio>
#include<cstring>
#include<cmath>
#include<cstdlib>
using namespace std;
int n,p[200100],num,temp,ans,k=1008610001;
struct	edge{
	int next,y,v;
}e[100100];int lin[200100],len;
bool flag[100100];
void in(int xx,int yy,int zz){
	e[++len].next=lin[xx];
	lin[xx]=len;
	e[len].v=zz;
	e[len].y=yy;
}
void dfs(int st){
	if(temp>ans)	ans=temp;
	/*if(flag[st])	return;*/
	flag[st]=1;
	int s=lin[st];
	for(int j=s;j;j=e[j].next){
		int np=e[j].y;
		if(!flag[np]){
			flag[np]=1;temp++;
			dfs(np);
			flag[np]=0;temp--;
		}
	}
}
int main(){
	freopen("firelead.in","r",stdin);
	freopen("firelead.out","w",stdout);
	scanf("%d",&n);
	for(int i=1;i<=n;i++){
		int a,b,c;
		scanf("%d%d%d",&a,&b,&c);
		in(a,b,c);in(b,a,c);
		if(!flag[a])	{p[++num]=a;flag[a]=1;}
		if(!flag[b])	{p[++num]=b;flag[b]=1;}
	}
	memset(flag,0,sizeof(flag));
	for(int i=1;i<=num;i++){
		ans=0;
		dfs(p[i]);
		flag[p[i]]=0;
		if(k>ans&&ans!=0)	k=ans;
	}
	cout<<k<<endl;
	return 0;
}