class Solution {
public:
bool isBipartite(int V, vector<int>adj[]){
// Code here
int color[V]={-1};
for(int i=0;i<V;i++)
color[i]=-1;
queue<int> q;
for(int r=0;r<V;r++)
{
if(color[r]==-1)
{
q.push(r);
color[r]=0;
while(q.size()>0)
{
int i=q.front();
q.pop();
int c=color[i];
for(int j=0;j<adj[i].size();j++)
{
if(color[adj[i][j]]==c)
{
return false;
}
if(color[adj[i][j]]==-1)
{
color[adj[i][j]]=1-color[i];
q.push(adj[i][j]);
}
}
}
}
}
return true;
}
};