#include const int MAXN = 100 * 1000 + 10; bool mark[MAXN]; bool color[MAXN]; vector adj[MAXN]; // اگر خروجی تابع ۱ باشد یعنی مؤلفه‌ی v دو‌بخشی است و اگر ۰ باشد یعنی دور فرد دارد. bool dfs(int v, bool c){ mark[v] = 1; color[v] = c; for(int i=0; i