Problem Link : https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=1900
Solution :
#include<bits/stdc++.h>
using namespace std;
vector<long long int>v[1005];
long long int visited[1005];
void bfs(long long int k)
{
memset(visited,-1,sizeof(visited));
queue<long long int>q;
visited[0]=0;
q.push(0);
long long int u,p,i;
while(!q.empty())
{
u=q.front();
q.pop();
for(i=0;i<v[u].size();i++)
{
p=v[u][i];
if(visited[p]==-1)
{
visited[p]=visited[u]+1;
q.push(p);
}
}
}
for(i=1;i<k;i++)
{
cout<<visited[i]<<endl;
}
}
int main()
{
//freopen("input.txt","r",stdin);
//freopen("output.txt","w",stdout);
long long int t,i,j,k,l,a,b;
scanf("%lld",&t);
j=0;
while(t--)
{
if(j>0) cout<<endl;
j++;
cin>>k>>l;
for(i=0;i<l;i++)
{
cin>>a>>b;
v[a].push_back(b);
v[b].push_back(a);
}
bfs(k);
for(i=0;i<k;i++) v[i].clear();
}
}
Solution :
#include<bits/stdc++.h>
using namespace std;
vector<long long int>v[1005];
long long int visited[1005];
void bfs(long long int k)
{
memset(visited,-1,sizeof(visited));
queue<long long int>q;
visited[0]=0;
q.push(0);
long long int u,p,i;
while(!q.empty())
{
u=q.front();
q.pop();
for(i=0;i<v[u].size();i++)
{
p=v[u][i];
if(visited[p]==-1)
{
visited[p]=visited[u]+1;
q.push(p);
}
}
}
for(i=1;i<k;i++)
{
cout<<visited[i]<<endl;
}
}
int main()
{
//freopen("input.txt","r",stdin);
//freopen("output.txt","w",stdout);
long long int t,i,j,k,l,a,b;
scanf("%lld",&t);
j=0;
while(t--)
{
if(j>0) cout<<endl;
j++;
cin>>k>>l;
for(i=0;i<l;i++)
{
cin>>a>>b;
v[a].push_back(b);
v[b].push_back(a);
}
bfs(k);
for(i=0;i<k;i++) v[i].clear();
}
}
No comments:
Post a Comment