题目描述
给出一张有向图,输入顶点个数n和边数m(n<=10000,m<=500000)以及顶点s。之后m行每行三个参数,表示边的两个顶点及权值。输出s点的所有邻接点编号及长度.
输入
第一行:顶点个数n和边数m以及顶点s
之后m行,每行三个数,表示边的起点、终点以及权值
输出
输出s点的所有邻接点编号及长度.以空格隔开
样例
输入
4 6 1
1 2 2
2 3 2
2 4 1
1 3 5
3 4 3
1 4 4
输出
2 2
3 5
4 4
AC代码:
#include <bits/stdc++.h>
using namespace std;
const int MAXN = 10000 + 10;
int n, m,s;
struct Node{
int v, w;
Node(int _v, int _w){
v =_v;
w=_w;
}
};
vector<Node> G[MAXN];
int main()
{
cin >>n >>m >>s;
for(int i = 1; i <= m; i++){
int u, v, w;
cin >>u>>v>>w;
G[u].push_back(Node(v,w));
}
for(int i = 0; i < G[s].size(); i++){
cout <<G[s][i].v <<" " << G[s][i].w <<endl;
}
return 0;
}