#include <bits/stdc++.h>
using namespace std;
const int MAXN = 100;
vector<int> adj[MAXN]; // danh sách kề
bool visited[MAXN];
bool found = false;
int n;
// DFS kiểm tra có đường đi từ u đến v hay không
void dfs(int u, int v) {
if (u == v) {
found = true;
return;
}
visited[u] = true;
for (int x : adj[u]) {
if (!visited[x]) {
dfs(x, v);
}
}
}
int main() {
n = 5;
// danh sách cạnh (edge list)
vector<pair<int,int>> edges = {
{0, 1},
{1, 2},
{0, 3},
{3, 4},
{4, 2}
};
// xây dựng danh sách kề
for (auto e : edges) {
int u = e.first;
int v = e.second;
adj[u].push_back(v);
adj[v].push_back(u); // đồ thị vô hướng
}
int u = 0, v = 2;
memset(visited, false, sizeof(visited));
dfs(u, v);
if (found)
cout << "Co duong di tu " << u << " den " << v << endl;
else
cout << "Khong co duong di tu " << u << " den " << v << endl;
return 0;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7Cgpjb25zdCBpbnQgTUFYTiA9IDEwMDsKdmVjdG9yPGludD4gYWRqW01BWE5dOyAgIC8vIGRhbmggc8OhY2gga+G7gQpib29sIHZpc2l0ZWRbTUFYTl07CmJvb2wgZm91bmQgPSBmYWxzZTsKaW50IG47CgovLyBERlMga2nhu4NtIHRyYSBjw7MgxJHGsOG7nW5nIMSRaSB04burIHUgxJHhur9uIHYgaGF5IGtow7RuZwp2b2lkIGRmcyhpbnQgdSwgaW50IHYpIHsKICAgIGlmICh1ID09IHYpIHsKICAgICAgICBmb3VuZCA9IHRydWU7CiAgICAgICAgcmV0dXJuOwogICAgfQoKICAgIHZpc2l0ZWRbdV0gPSB0cnVlOwoKICAgIGZvciAoaW50IHggOiBhZGpbdV0pIHsKICAgICAgICBpZiAoIXZpc2l0ZWRbeF0pIHsKICAgICAgICAgICAgZGZzKHgsIHYpOwogICAgICAgIH0KICAgIH0KfQoKaW50IG1haW4oKSB7CiAgICBuID0gNTsKCiAgICAvLyBkYW5oIHPDoWNoIGPhuqFuaCAoZWRnZSBsaXN0KQogICAgdmVjdG9yPHBhaXI8aW50LGludD4+IGVkZ2VzID0gewogICAgICAgIHswLCAxfSwKICAgICAgICB7MSwgMn0sCiAgICAgICAgezAsIDN9LAogICAgICAgIHszLCA0fSwKICAgICAgICB7NCwgMn0KICAgIH07CgogICAgLy8geMOieSBk4buxbmcgZGFuaCBzw6FjaCBr4buBCiAgICBmb3IgKGF1dG8gZSA6IGVkZ2VzKSB7CiAgICAgICAgaW50IHUgPSBlLmZpcnN0OwogICAgICAgIGludCB2ID0gZS5zZWNvbmQ7CiAgICAgICAgYWRqW3VdLnB1c2hfYmFjayh2KTsKICAgICAgICBhZGpbdl0ucHVzaF9iYWNrKHUpOyAvLyDEkeG7kyB0aOG7iyB2w7QgaMaw4bubbmcKICAgIH0KCiAgICBpbnQgdSA9IDAsIHYgPSAyOwoKICAgIG1lbXNldCh2aXNpdGVkLCBmYWxzZSwgc2l6ZW9mKHZpc2l0ZWQpKTsKICAgIGRmcyh1LCB2KTsKCiAgICBpZiAoZm91bmQpCiAgICAgICAgY291dCA8PCAiQ28gZHVvbmcgZGkgdHUgIiA8PCB1IDw8ICIgZGVuICIgPDwgdiA8PCBlbmRsOwogICAgZWxzZQogICAgICAgIGNvdXQgPDwgIktob25nIGNvIGR1b25nIGRpIHR1ICIgPDwgdSA8PCAiIGRlbiAiIDw8IHYgPDwgZW5kbDsKCiAgICByZXR1cm4gMDsKfQo=