样例输出140
#include<bits/stdc++.h>
using namespace std;
int n,m,a[51],b[51],c[51],j[21],mmon=-1,h;
void dfs(int q,int x)//dfs搜索
{
j[q]=1;//记录已经走过的
for(h=1;h<=m;++h)//搜索可以走的路
{
if(a[h]==q&&j[b[h]]==0)
{
dfs(b[h],x+c[h]);
j[b[h]]=0;//回溯
}
if(b[h]==q&&j[a[h]]==0)
{
dfs(a[h],x+c[h]);
j[a[h]]=0;
}
//cout<<x<<" ";
mmon=max(mmon,x);//死路就计算最大长度
}
}
int main()
{
cin>>n>>m;
for(int i=1;i<=m;++i)
{
cin>>a[i]>>b[i]>>c[i];
if(a[i]==b[i]) a[i]=0,b[i]=0;
}
for(int i=1;i<=n;++i)
{
dfs(i,0);
j[21]={0};//重置j数组
//cout<<endl<<endl;
}
cout<<mmon;
return 0;
}