BipartiteGraphCheck

#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;
}