题目:
题目描述
给出一个
�
n 个结点
�
m 条边的无向图,结点编号为
1
∼
�
1∼n 。问与结点
�
u 相连的结点都有哪些?(这里的相连指的是相邻,也就是有一条边直接连接)
输入格式
第一行包含
2
2 个正整数
�
,
�
n, m ,分别为图的结点数和边数。
接下来
�
m 行,每行
2
2 个正整数
�
,
�
x, y,表示有一条边连接着结点
�
x 和
�
y ,输入数据保证没有重边,但可能有自环。
接下来一行输入一个正整数
�
u 。
输出格式
按照从小到大的顺序输出所有与
�
u 相连的结点。如果
�
u 有自环,则
�
u 也要输出。如果没有结点与
�
u 相连,输出 "NULL" (不包含引号)。
输入输出样例
输入 #1复制
4 3
1 3
1 2
4 3
1
输出 #1复制
2 3
输入 #2复制
2 1
1 1
2
输出 #2复制
NULL
说明/提示
对于
20
%
20% 的数据,
1
≤
�
≤
100
,
0
≤
�
≤
1000
1≤n≤100, 0≤m≤1000 ;
对于
60
%
60% 的数据,
1
≤
�
≤
1000
,
0
≤
�
≤
10000
1≤n≤1000, 0≤m≤10000 ;
对于
100
%
100% 的数据,
1
≤
�
≤
10000
,
0
≤
�
≤
100000
,
1
≤
�
,
�
,
�
≤
�
1≤n≤10000, 0≤m≤100000, 1≤x,y,u≤n 。
我的代码:
#include<bits/stdc++.h>
#define ll long long
struct edge
{
int a,b;
void input()
{
if(a<b)
{
a=a+b;
b=a-b;
a=a-b;
}
}
}e[100005];
using namespace std;
int main()
{
cin>>n>>m;
for(int i=1;i<=m;i++)
{
cin>>e[i].a>>e[i].b;
e[i].input();
}
cin>>k;
for(int i=1;i<=m;i++)
{
if(e[i].a==k)
{
ll n,m,k;
bool null=1;
null=0;
cout<<e[i].b<<" ";
}
}
if(null)
{
cout<<"NULL";
}
return 0;
}