/********************************* MH RIYAD *************************************/
#include <bits/stdc++.h>
#include<unordered_map>
#include<iostream>
#define pb push_back
#define MAX 1000006
#define mod 100000007
#define read freopen("input.txt","r",stdin);
#define write freopen("output.txt","w",stdout);
#define inf (1<<30)
using namespace std;
typedef long long ll ;
typedef unsigned long long ull ;
struct nod
{
int a,b,w;
} ary[1002];
int node,edge,par[1002];
vector<int>ans;
bool cmp(nod m,nod n)
{
return m.w<n.w;
}
int find_par(int x)
{
if(par[x]==x) return x;
return par[x]=find_par(par[x]);
}
void mst()
{
for(int i=0; i<node; i++) par[i]=i;
for(int i=0; i<edge; i++)
{
int u=find_par(ary[i].a);
int v=find_par(ary[i].b);
if(v!=u) par[v]=u;
else ans.pb(ary[i].w);
}
}
int main()
{
// read;
while(~scanf("%d %d",&node,&edge))
{
if(node==0&&edge ==0) break;
ans.clear();
for(int i=0; i<edge; i++) scanf("%d %d %d",&ary[i].a,&ary[i].b,&ary[i].w);
sort(ary,ary+edge,cmp);
mst();
if(ans.size()==0) puts("forest");
else
{
sort(ans.begin(),ans.end());
printf("%d",ans[0]);
for(int i=1; i<ans.size(); i++) printf(" %d",ans[i]);
puts("");
}
}
return 0;
}
#include <bits/stdc++.h>
#include<unordered_map>
#include<iostream>
#define pb push_back
#define MAX 1000006
#define mod 100000007
#define read freopen("input.txt","r",stdin);
#define write freopen("output.txt","w",stdout);
#define inf (1<<30)
using namespace std;
typedef long long ll ;
typedef unsigned long long ull ;
struct nod
{
int a,b,w;
} ary[1002];
int node,edge,par[1002];
vector<int>ans;
bool cmp(nod m,nod n)
{
return m.w<n.w;
}
int find_par(int x)
{
if(par[x]==x) return x;
return par[x]=find_par(par[x]);
}
void mst()
{
for(int i=0; i<node; i++) par[i]=i;
for(int i=0; i<edge; i++)
{
int u=find_par(ary[i].a);
int v=find_par(ary[i].b);
if(v!=u) par[v]=u;
else ans.pb(ary[i].w);
}
}
int main()
{
// read;
while(~scanf("%d %d",&node,&edge))
{
if(node==0&&edge ==0) break;
ans.clear();
for(int i=0; i<edge; i++) scanf("%d %d %d",&ary[i].a,&ary[i].b,&ary[i].w);
sort(ary,ary+edge,cmp);
mst();
if(ans.size()==0) puts("forest");
else
{
sort(ans.begin(),ans.end());
printf("%d",ans[0]);
for(int i=1; i<ans.size(); i++) printf(" %d",ans[i]);
puts("");
}
}
return 0;
}
কোন মন্তব্য নেই:
একটি মন্তব্য পোস্ট করুন