Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <fstream>
- using namespace std;
- ifstream fin("lantminim.in");
- ofstream fout("lantminim.out");
- int a[101][101],c[101],t[101],d[101],viz[101];
- int n,p,q,st,dr;
- void Citire()
- {
- int x,y,i;
- fin >> n >> p >> q;
- while(fin >> x >> y)
- {
- a[x][y] = a[y][x] = 1;
- }
- }
- void BFS(int p, int q)
- {
- int i,k;
- st = dr = 1;
- viz[p] = 1;
- c[1] = p;
- t[p] = 0;
- d[p] = 1;
- while(st <= dr)
- {
- k = c[st];
- st++;
- for(i = 1; i<= n; i++)
- if(a[k][i] and !viz[i])
- {
- c[++dr] = i;
- viz[i] = 1;
- t[i] = k;
- d[i] = d[k] + 1;
- }
- }
- }
- void Afis(int p)
- {
- if(p)
- {
- Afis(t[p]);
- fout << p <<" ";
- }
- }
- int main()
- {
- Citire();
- BFS(p,q);
- fout << d[q]<<"\n";
- Afis(q);
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement