#include <cstdio> #include <cstring> #include <vector> #include <queue> using namespace std; #define MAX 100 int V,color[MAX+7]; vector<int> adjList[MAX+7]; bool process(int u=0) //Returns true if the candidate graph is a bipartite graph, false otherwise { memset(color,0,sizeof color); queue<int> Q; Q.push(u), color[u]=+1; //There will be two colors, +1 and -1. int v; while(!Q.empty()) { u=Q.front(), Q.pop(); for(int i=0;i<(int)adjList[u].size();i++) { v=adjList[u][i]; if(!color[v]) color[v]=-color[u], Q.push(v); else if(color[u]==color[v]) return false; } } return true; } int main() { /* code */ return 0; }