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 v[101], n, a[101][101], p, q, t[101];
- void citire()
- {
- fin >> n >> p >> q;
- int i, j;
- while (fin >> i >>j)
- a[i][j] = a[j][i] = 1;
- }
- void BFS(int start)
- {
- int st, dr, Q[101];
- st = 1;
- dr = 0;
- Q[++dr] = start;
- v[start] = 1;
- t[start] = 0;
- while(st<=dr)
- {
- int k = Q[st];
- for (int i=n; i>=1; i--)
- if(a[k][i]==1 && v[i]==0)
- {
- Q[++dr] = i;
- v[i] = 1;
- t[i] = k;
- }
- st++;
- }
- }
- void reconstituire(int stop)
- {
- int S[101], top=0;
- while (stop!=0)
- {
- S[++top] = stop;
- stop = t[stop];
- }
- fout << top << '\n';
- while (top!=0)
- fout << S[top--] << " ";
- }
- int main()
- {
- citire();
- BFS(p);
- reconstituire(q);
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement