比赛 |
不平凡的世界 |
评测结果 |
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;
}