题目描述
给出一个无向带权图,顶点数为n,边数为m。
输入格式
第一行两个整数n,m,
接下来有m行,每行3个整数u,v,w,表示点u到点v有一条边,边权为w。
输出格式
第i行输出第点i的所有邻接点,按照点i到该点的边权由小到大输出,如果边权相等,则按照点的编号有小到大输出。
样例
样例输入
复制4 5
1 2 3
1 3 1
1 4 1
2 3 5
2 4 3
样例输出
复制3 4 2
1 4 3
1 2
1 2
_____________________________________________________________________________
写作不易,点个赞呗!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
_____________________________________________________________________________
#include<bits/stdc++.h>
using namespace std;
struct node{int x;int y;
};
int n,m,u,v,w;
vector<node> a[100005];
bool cmp(node a,node b){if(a.y==b.y){return a.x<b.x;}return a.y<b.y;
}
int main(){cin>>n>>m;for(int i=1;i<=m;i++){cin>>u>>v>>w;a[u].push_back({v,w});a[v].push_back({u,w});}for(int i=1;i<=n;i++){sort(a[i].begin(),a[i].end(),cmp);for(auto j:a[i])cout<<j.x<<" ";cout<<endl;}
}