#include #include const int MAXN = 100 * 1000 + 10; bool mark[MAXN]; int vector adj[MAXN]; void bfs(int v) { queue q; mark[v] = 1; q.push(v); while(q.size()) { v = q.front(); // راس ابتدایی را از صف بر میداریم q.pop(); // کار‌ها‌ی پیش‌ترتیب را اینجا مینویسیم for(int i = 0; i < adj[v].size(); i++) { int u = adj[v][i]; if (mark[u] == 1) // قبلا این راس را به صف اضافه نکرده باشیم continue; mark[u] = 1; q.push(u); } } }