{"id":1875,"date":"2020-07-01T09:47:21","date_gmt":"2020-07-01T09:47:21","guid":{"rendered":"https:\/\/blog.prepbytes.com\/?p=1875"},"modified":"2022-03-28T01:17:47","modified_gmt":"2022-03-28T01:17:47","slug":"clan-war","status":"publish","type":"post","link":"https:\/\/prepbytes.com\/blog\/clan-war\/","title":{"rendered":"Clan War"},"content":{"rendered":"<p><img decoding=\"async\" src=\"https:\/\/prepbytes-misc-images.s3.ap-south-1.amazonaws.com\/assets\/1645097266749-Article_285.png\" alt=\"\" \/><\/p>\n<h3>Concepts Used<\/h3>\n<blockquote>\n<p>Depth First Search, Disjoint Set<\/p>\n<\/blockquote>\n<h3>Difficulty Level<\/h3>\n<blockquote>\n<p>Medium<\/p>\n<\/blockquote>\n<h3>Problem Statement :<\/h3>\n<blockquote>\n<p>There are two clans numbered sequentially from <code>1<\/code> to <code>N<\/code> and given two integers, <code>u<\/code> and <code>v<\/code> denoting the clan numbers that are fighting each other. We assume that the clans of one nation do not fight each other, they only fight with the clans of the enemy nation. Check whether this assumption is correct or not.<\/p>\n<\/blockquote>\n<p><a href=\"https:\/\/mycode.prepbytes.com\/problems\/graphs\/CLNWAR\" title=\"Go to mycode.prepbytes.com\" target=\"_blank\" rel=\"noopener noreferrer\"><u><strong><\/strong><\/u><\/a><\/p>\n<h3>Solution Approach :<\/h3>\n<h4>Introduction :<\/h4>\n<blockquote>\n<p>Idea is to seperate clans that fight each other, into two groups. Now we have to check whether any clan fights any clan of the same group, if so our assumption is wrong otherwise it is right.<\/p>\n<p>There is a graph type which can be applied in this problem, <strong>&quot;Biparted Graph&quot;<\/strong>. A bipartite graph (or bigraph) is a graph whose vertices can be divided into two disjoint and independent sets <code>u<\/code> and <code>v<\/code> such that every edge connects a vertex in <code>u<\/code> to one in <code>v<\/code>.<\/p>\n<p>Now we just have to check whether our graph is biparted or not.<br \/>\nBelow we are going to discuss few approaches to solve this problem.<\/p>\n<\/blockquote>\n<p><img decoding=\"async\" src=\"https:\/\/prepbytes.com\/blog\/wp-content\/uploads\/2020\/06\/clnwar.png\" alt=\"\" \/><\/p>\n<h4>Method 1 :<\/h4>\n<blockquote>\n<p>We can assign colours (<code>0<\/code> or <code>1<\/code>) to determine which group does the vertex belong. We can simply run <strong>dfs<\/strong> from a vertex and assign some colour to each new vertex visited. If the parent\u2019s colour is 1, then all its children must be assigned 0. Now if you encounter a visited node having the same colour as it&#8217;s parent, the graph isn\u2019t bipartite.<\/p>\n<\/blockquote>\n<h4>Method 2 :<\/h4>\n<blockquote>\n<p>Given a graph represented as an adjacency-list (i.e. a list of edges), you can determine if it&#8217;s bipartite as follows:<\/p>\n<ul>\n<li>Initialize a <strong>disjoint-set<\/strong> data structure SETS, with a singleton set for each vertex. (If there is an even-length path between two vertices, then we will ultimately unify those two vertices into the same set, unless we return \ua730\u1d00\u029f\ua731\u1d07 first.)<\/li>\n<li>Initialize a parent[ ] for each vertex to \u0274\u026a\u029f. (As we examine edges, we will update parent[ ] for each vertex to one of its neighbors.)<\/li>\n<li>For each edge {u, v}:<br \/>\nIf u and v belong to the same parent in SETS, then return \ua730\u1d00\u029f\ua731\u1d07.<\/li>\n<li>If parent[u] = \u0274\u026a\u029f, set parent[u] := v.<br \/>\nOtherwise, update SETS to unify v with parent[u].<\/li>\n<li>If parent[v] = \u0274\u026a\u029f, set parent[v] := u.<br \/>\nOtherwise, update SETS to unify u with parent[v].<\/li>\n<li>Return \u1d1b\u0280\u1d1c\u1d07.<\/li>\n<\/ul>\n<p>Notice that we are returning false as soon as we find a odd length cycle as the odd length cycle can never be divided into two distinct sets. (Think why?).<\/p>\n<\/blockquote>\n<h3>Algorithms :<\/h3>\n<blockquote>\n<h4><strong>dfs()<\/strong> :<\/h4>\n<ol>\n<li>create a queue and push the current vertex now perform following operations untill the queue is empty:<\/li>\n<li>each time we pop a vertex <code>v<\/code> from queue, ( <code>v<\/code> = queue.front() ), we will mark the vertex <code>v<\/code> as visited (<code>visited[v]= true<\/code>).<\/li>\n<li>Iterate for all the adjacent vertices of <code>v<\/code> and for every adjacent vertex <code>a<\/code>, do following :\n<ul>\n<li>if the colour of the vertex is <code>-1<\/code>, then assign the colour opposite to that of <code>v<\/code>.<\/li>\n<li>if the colour of <code>a<\/code> and <code>v<\/code> is same, return false.<\/li>\n<li>if <code>a<\/code> is not visited i.e <code>visited[a]= false<\/code>,<br \/>\nand if <code>a<\/code> has value <code>1<\/code>. <\/li>\n<li>push the vertex <code>a<\/code> into queue.<\/li>\n<\/ul>\n<\/li>\n<\/ol>\n<\/blockquote>\n<h3>Complexity Analysis:<\/h3>\n<blockquote>\n<p>The <strong>time complexity<\/strong> of the first method is represented in the form of <code>O(V+E)<\/code>, where <code>V<\/code> is the number of verices and <code>E<\/code> is the number of edges.<\/p>\n<p>The <strong>space complexity<\/strong> of the algorithm is <code>O(V)<\/code> for <code>visited[]<\/code> &amp; <code>colour[]<\/code> array.<\/p>\n<\/blockquote>\n<h3>Solutions:<\/h3>\n<p>\t\t\t\t\t\t<style>\r\n\t\t\t\t\r\n\t\t\t\t\t#tab_container_1897 {\r\n\toverflow:hidden;\r\n\tdisplay:block;\r\n\twidth:100%;\r\n\tborder:0px solid #ddd;\r\n\tmargin-bottom:30px;\r\n\t}\r\n\r\n#tab_container_1897 .tab-content{\r\n\tpadding:20px;\r\n\tborder: 1px solid #e6e6e6 !important;\r\n\tmargin-top: 0px;\r\n\tbackground-color:#ffffff !important;\r\n\tcolor: #000000 !important;\r\n\tfont-size:16px !important;\r\n\tfont-family: Open Sans !important;\r\n\t\r\n\t\tborder: 1px solid #e6e6e6 !important;\r\n\t}\r\n#tab_container_1897 .wpsm_nav-tabs {\r\n    border-bottom: 0px solid #ddd;\r\n}\r\n#tab_container_1897 .wpsm_nav-tabs > li.active > a, #tab_container_1897 .wpsm_nav-tabs > li.active > a:hover, #tab_container_1897 .wpsm_nav-tabs > li.active > a:focus {\r\n\tcolor: #000000 !important;\r\n\tcursor: default;\r\n\tbackground-color: #ffffff !important;\r\n\tborder: 1px solid #e6e6e6 !important;\r\n}\r\n\r\n#tab_container_1897 .wpsm_nav-tabs > li > a {\r\n    margin-right: 0px !important; \r\n    line-height: 1.42857143 !important;\r\n    border: 1px solid #d5d5d5 !important;\r\n    border-radius: 0px 0px 0 0 !important; \r\n\tbackground-color: #e8e8e8 !important;\r\n\tcolor: #000000 !important;\r\n\tpadding: 15px 18px 15px 18px !important;\r\n\ttext-decoration: none !important;\r\n\tfont-size: 14px !important;\r\n\ttext-align:center !important;\r\n\tfont-family: Open Sans !important;\r\n}\r\n#tab_container_1897 .wpsm_nav-tabs > li > a:focus {\r\noutline: 0px !important;\r\n}\r\n\r\n#tab_container_1897 .wpsm_nav-tabs > li > a:before {\r\n\tdisplay:none !important;\r\n}\r\n#tab_container_1897 .wpsm_nav-tabs > li > a:after {\r\n\tdisplay:none !important ;\r\n}\r\n#tab_container_1897 .wpsm_nav-tabs > li{\r\npadding:0px !important ;\r\nmargin:0px;\r\n}\r\n\r\n#tab_container_1897 .wpsm_nav-tabs > li > a:hover , #tab_container_1897 .wpsm_nav-tabs > li > a:focus {\r\n    color: #000000 !important;\r\n    background-color: #e8e8e8 !important;\r\n\tborder: 1px solid #d5d5d5 !important;\r\n\t\r\n}\r\n#tab_container_1897 .wpsm_nav-tabs > li > a .fa{\r\n\r\nmargin-right:5px !important;\r\n\r\nmargin-left:5px !important;\r\n\r\n\r\n}\r\n\r\n\t\t#tab_container_1897 .wpsm_nav-tabs a{\r\n\t\t\tbackground-image: none;\r\n\t\t\tbackground-position: 0 0;\r\n\t\t\tbackground-repeat: repeat-x;\r\n\t\t}\r\n\t\t\t\r\n\r\n\r\n#tab_container_1897 .wpsm_nav-tabs > li {\r\n    float: left;\r\n    margin-bottom: -1px !important;\r\n\tmargin-right:0px !important; \r\n}\r\n\r\n\r\n#tab_container_1897 .tab-content{\r\noverflow:hidden !important;\r\n}\r\n\r\n\r\n@media (min-width: 769px) {\r\n\r\n\t#tab_container_1897 .wpsm_nav-tabs > li{\r\n\t\tfloat:left !important ;\r\n\t\t\t\tmargin-right:-1px !important;\r\n\t\t\t\t\t}\r\n\t#tab_container_1897 .wpsm_nav-tabs{\r\n\t\tfloat:none !important;\r\n\t\tmargin:0px !important;\r\n\t}\r\n\r\n\t#tab_container_1897 .wpsm_nav-tabs > li {\r\n\t\t\t\t\r\n\t}\r\n\t#tab_container_1897 .wpsm_nav{\r\n\t\t\t}\r\n\r\n}\r\n\r\n\r\n\r\n@media (max-width: 768px) {\r\n\t#tab_container_1897 .wpsm_nav-tabs > li {\r\n\t\t\t\t\r\n\t}\r\n\t#tab_container_1897 .wpsm_nav{\r\n\t\t\t}\r\n}\r\n\r\n\r\n\t.wpsm_nav-tabs li:before{\r\n\t\tdisplay:none !important;\r\n\t}\r\n\r\n\t@media (max-width: 768px) {\r\n\t\t\t\t\r\n\t\t\t\t.wpsm_nav-tabs{\r\n\t\t\tmargin-left:0px !important;\r\n\t\t\tmargin-right:0px !important; \r\n\t\t\t\r\n\t\t}\r\n\t\t\t\t#tab_container_1897 .wpsm_nav-tabs > li{\r\n\t\t\tfloat:none !important;\r\n\t\t}\r\n\t\t\t\r\n\t}\t\t\t\t<\/style>\r\n\t\t\t\t<div id=\"tab_container_1897\" >\r\n\t \r\n\t\t\t\t\t<ul class=\"wpsm_nav wpsm_nav-tabs\" role=\"tablist\" id=\"myTab_1897\">\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t<li role=\"presentation\"  class=\"active\"  onclick=\"do_resize()\">\r\n\t\t\t\t\t\t\t\t<a href=\"#tabs_desc_1897_1\" aria-controls=\"tabs_desc_1897_1\" role=\"tab\" data-toggle=\"tab\">\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<i class=\"fa fa-code\"><\/i> \t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t<span>C<\/span>\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t<\/a>\r\n\t\t\t\t\t\t\t<\/li>\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t<li role=\"presentation\"  onclick=\"do_resize()\">\r\n\t\t\t\t\t\t\t\t<a href=\"#tabs_desc_1897_2\" aria-controls=\"tabs_desc_1897_2\" role=\"tab\" data-toggle=\"tab\">\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<i class=\"fa fa-code\"><\/i> \t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t<span>C++<\/span>\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t<\/a>\r\n\t\t\t\t\t\t\t<\/li>\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t<li role=\"presentation\"  onclick=\"do_resize()\">\r\n\t\t\t\t\t\t\t\t<a href=\"#tabs_desc_1897_3\" aria-controls=\"tabs_desc_1897_3\" role=\"tab\" data-toggle=\"tab\">\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<i class=\"fa fa-code\"><\/i> \t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t<span>Java<\/span>\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t<\/a>\r\n\t\t\t\t\t\t\t<\/li>\r\n\t\t\t\t\t\t\t\t\t\t\t <\/ul>\r\n\r\n\t\t\t\t\t  <!-- Tab panes -->\r\n\t\t\t\t\t  <div class=\"tab-content\" id=\"tab-content_1897\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t <div role=\"tabpanel\" class=\"tab-pane  in active \" id=\"tabs_desc_1897_1\">\r\n\t\t\t\t\t\t\t\t\r\n\r\n<!-- wp:enlighter\/codeblock {\"language\":\"c\"} -->\r\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"c\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">\r\n\r\n#include &lt;stdio.h&gt;\r\n    #include &lt;stdlib.h&gt;\r\n    #include &lt;string.h&gt;\r\n    #define INT_MIN -99999\r\n\r\n    \/\/ADJACENCY LIST\r\n    struct node {\r\n      int vertex;\r\n      struct node* next;\r\n    };\r\n    struct node* createNode(int);\r\n\r\n    struct Graph {\r\n      int numVertices;\r\n      struct node** adjLists;\r\n    };\r\n\r\n    \/\/ Create a node\r\n    struct node* createNode(int v) {\r\n      struct node* newNode = malloc(sizeof(struct node));\r\n      newNode-&gt;vertex = v;\r\n      newNode-&gt;next = NULL;\r\n      return newNode;\r\n    }\r\n\r\n    \/\/ Create a graph\r\n    struct Graph* createAGraph(int vertices) {\r\n      struct Graph* graph = malloc(sizeof(struct Graph));\r\n      graph-&gt;numVertices = vertices;\r\n\r\n      graph-&gt;adjLists = malloc(vertices * sizeof(struct node*));\r\n\r\n      int i;\r\n      for (i = 0; i &lt; vertices; i++)\r\n        graph-&gt;adjLists[i] = NULL;\r\n\r\n      return graph;\r\n    }\r\n\r\n    \/\/ Add edge\r\n    void addEdge(struct Graph* graph, int s, int d) {\r\n      \/\/ Add edge from s to d\r\n      struct node* newNode = createNode(d);\r\n      newNode-&gt;next = graph-&gt;adjLists[s];\r\n      graph-&gt;adjLists[s] = newNode;\r\n\r\n      \/\/ Add edge from d to s\r\n      newNode = createNode(s);\r\n      newNode-&gt;next = graph-&gt;adjLists[d];\r\n      graph-&gt;adjLists[d] = newNode;\r\n    }\r\n\r\n\r\n     \/\/QUEUE\r\n    struct Queue\r\n    {\r\n        int front, rear, size;\r\n        unsigned capacity;\r\n        int* array;\r\n    };\r\n\r\n\r\n    struct Queue* createQueue(unsigned capacity)\r\n    {\r\n        struct Queue* queue = (struct Queue*) malloc(sizeof(struct Queue));\r\n        queue-&gt;capacity = capacity;\r\n        queue-&gt;front = queue-&gt;size = 0;\r\n        queue-&gt;rear = capacity - 1;  \/\/ This is important, see the enqueue\r\n        queue-&gt;array = (int*) malloc(queue-&gt;capacity * sizeof(int));\r\n        return queue;\r\n    }\r\n\r\n\r\n    \/\/ Queue is empty when size is 0\r\n    int isEmpty(struct Queue* queue)\r\n    {  return (queue-&gt;size == 0); }\r\n\r\n    \/\/ Function to add an item to the queue.\r\n    \/\/ It changes rear and size\r\n    void enqueue(struct Queue* queue, int item)\r\n    {\r\n        if (isFull(queue))\r\n            return;\r\n        queue-&gt;rear = (queue-&gt;rear + 1)%queue-&gt;capacity;\r\n        queue-&gt;array[queue-&gt;rear] = item;\r\n        queue-&gt;size = queue-&gt;size + 1;\r\n        \/\/printf(\"%d enqueued to queue&#92;n\", item);\r\n    }\r\n\r\n    \/\/ Function to remove an item from queue.\r\n    \/\/ It changes front and size\r\n    int dequeue(struct Queue* queue)\r\n    {\r\n        if (isEmpty(queue))\r\n            return INT_MIN;\r\n        int item = queue-&gt;array[queue-&gt;front];\r\n        queue-&gt;front = (queue-&gt;front + 1)%queue-&gt;capacity;\r\n        queue-&gt;size = queue-&gt;size - 1;\r\n        return item;\r\n    }\r\n\r\n    \/\/ Function to get front of queue\r\n    int front(struct Queue* queue)\r\n    {\r\n        if (isEmpty(queue))\r\n            return INT_MIN;\r\n        return queue-&gt;array[queue-&gt;front];\r\n    }\r\n\r\n\r\n    int BFS(struct Graph* graph,int n)\r\n        {\r\n\r\n            int visited[n+1];\r\n            int colour[n+1];\r\n            int node,flag=0;\r\n\r\n            memset(visited,0,sizeof(visited));\r\n            memset(colour,-1,sizeof(colour));\r\n\r\n            for(int k=0; k&lt;n ;k++)\r\n            {\r\n            if(!visited[k])\r\n            {\r\n                struct Queue* q = createQueue(100000);\r\n                enqueue(q, k);\r\n                colour[k] = 1;\r\n                while(!isEmpty(q))\r\n                {\r\n                node =     front(q);\r\n                dequeue(q);\r\n               \/\/ printf(\"%d \",node);\r\n\r\n                visited[node] = 1;\r\n                struct node* temp = graph-&gt;adjLists[node];\r\n                \/\/printf(\"&#92;n Vertex %d&#92;n: \", v);\r\n                while (temp) {\r\n\r\n                    \/\/ printf(\"%d \", temp-&gt;vertex);\r\n\r\n\r\n                    if(colour[temp-&gt;vertex] == -1)\r\n                    colour[temp-&gt;vertex] = !colour[node];\r\n\r\n                    else if    (colour[temp-&gt;vertex] == colour[node])\r\n                    {\r\n                    flag = 1;\r\n                    break;\r\n                    }\r\n\r\n                    if(!visited[temp-&gt;vertex])\r\n                    enqueue(q,temp-&gt;vertex);\r\n                    temp = temp-&gt;next;\r\n                }\r\n\r\n                if(flag)\r\n                    break;\r\n\r\n                }\r\n                }\r\n                if(flag)\r\n                break;\r\n            }\r\n            return flag;\r\n        }\r\n\r\n\r\n    int main() {\r\n\r\n          int t,n,m,u,v;\r\n            scanf(\"%d\",&amp;t);\r\n            while(t--)\r\n            {\r\n\r\n                scanf(\"%d %d\",&amp;n,&amp;m);\r\n                struct Graph* graph = createAGraph(n);\r\n                \/\/vector&lt;int&gt; graph[n+1];\r\n                for(int i=0; i&lt;m; ++i)\r\n                {\r\n                    scanf(\"%d %d\",&amp;u,&amp;v);\r\n                    \/\/ u +=1;\r\n                    \/\/ v +=1;\r\n                    addEdge(graph, u,v);\r\n                }\r\n\r\n                if(BFS(graph,n))\r\n                    printf(\"No&#92;n\");\r\n                else\r\n                    printf(\"Yes&#92;n\");\r\n            }\r\n            return 0;\r\n\r\n    }\r\n<\/pre>\r\n<!-- \/wp:enlighter\/codeblock -->\r\n\r\n\r\n\t\t\t\t\t\t <\/div>\r\n\t\t\t\t\t\t\t\t\t\t\t\t <div role=\"tabpanel\" class=\"tab-pane \" id=\"tabs_desc_1897_2\">\r\n\t\t\t\t\t\t\t\t<!-- wp:enlighter\/codeblock {\"language\":\"cpp\"} -->\r\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"cpp\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">\r\n\r\n#include &lt;bits\/stdc++.h&gt;\r\n    using namespace std;\r\n\r\n    int BFS(vector&lt;int&gt; graph[],int n)\r\n    {\r\n\r\n        bool visited[n+1];\r\n        int colour[n+1];\r\n        int node,flag=0;\r\n\r\n        memset(visited,0,sizeof(visited));\r\n        memset(colour,-1,sizeof(colour));\r\n\r\n        for(int k=1; k&lt;=n ;++k)\r\n        {\r\n        if(!visited[k])\r\n        {\r\n            queue&lt;int&gt; q;\r\n            q.push(k);\r\n            colour[k] = 1;\r\n            while(!q.empty())\r\n            {\r\n            node =     q.front();\r\n            q.pop();\r\n            visited[node] = true;\r\n            for(int i=0; i&lt;graph[node].size(); ++i)\r\n            {\r\n                if(colour[graph[node][i]] == -1)\r\n                colour[graph[node][i]] = !colour[node];\r\n\r\n                else if    (colour[graph[node][i]] == colour[node])\r\n                {\r\n                flag = 1;\r\n                break;\r\n                }\r\n\r\n                if(!visited[graph[node][i]])\r\n                q.push(graph[node][i]);\r\n            }\r\n\r\n            if(flag)\r\n                break;\r\n\r\n            }\r\n            }\r\n            if(flag)\r\n            break;\r\n        }\r\n        return flag;\r\n    }\r\n\r\n    int main() {\r\n\r\n        ios::sync_with_stdio(false);\r\n        int t,n,m,u,v;\r\n\r\n        cin&gt;&gt;t;\r\n        while(t--)\r\n        {\r\n\r\n            cin&gt;&gt;n&gt;&gt;m;\r\n            vector&lt;int&gt; graph[n+1];\r\n            for(int i=0; i&lt;m; ++i)\r\n            {\r\n                cin&gt;&gt;u&gt;&gt;v;\r\n                graph[u].push_back(v);\r\n                graph[v].push_back(u);\r\n            }\r\n\r\n            if(BFS(graph,n))\r\n                cout&lt;&lt;\"No\"&lt;&lt;endl;\r\n            else\r\n                cout&lt;&lt;\"Yes\"&lt;&lt;endl;\r\n        }\r\n        return 0;\r\n    }\r\n<\/pre>\r\n<!-- \/wp:enlighter\/codeblock -->\r\n\t\t\t\t\t\t <\/div>\r\n\t\t\t\t\t\t\t\t\t\t\t\t <div role=\"tabpanel\" class=\"tab-pane \" id=\"tabs_desc_1897_3\">\r\n\t\t\t\t\t\t\t\t<!-- wp:enlighter\/codeblock {\"language\":\"java\"} -->\r\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"java\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">\r\n\r\nimport java.util.*;\r\n\r\n\r\n    public class Main {\r\n        enum Color{\r\n            WHITE, RED, GREEN\r\n        }\r\n\r\n        static class Graph {\r\n            int vertices;\r\n            LinkedList&lt;Integer&gt;[] adjList;\r\n\r\n            public Graph(int vertices) {\r\n                this.vertices = vertices;\r\n\r\n                adjList = new LinkedList[vertices];\r\n                \/\/Initialize lists\r\n                for (int i = 0; i &lt; vertices; i++) {\r\n                    adjList[i] = new LinkedList&lt;&gt;();\r\n                }\r\n            }\r\n\r\n            public void addEdge(int source, int destination) {\r\n                \/\/add forward edge\r\n                adjList[source].addFirst(destination);\r\n\r\n                \/\/add back edge\r\n                adjList[destination].addFirst(source);\r\n            }\r\n\r\n            public boolean isBipartite(Graph graph) {\r\n\r\n                \/\/check if graph is empty\r\n                if (graph.vertices == 0)\r\n                    return true;\r\n\r\n                \/\/initialize colors for all vertices\r\n                Color colors[] = new Color[vertices];\r\n                \/\/color all the vertices with white color\r\n                for (int i = 0; i &lt; colors.length; i++) {\r\n                    colors[i] = Color.WHITE;\r\n                }\r\n\r\n                Queue&lt;Integer&gt; queue = new LinkedList&lt;&gt;();\r\n                \/\/start coloring vertices , this code will handle the disconnected graph as well\r\n                \/\/color the first vertex with RED\r\n            for (int source = 0; source &lt; vertices; source++) {\r\n\r\n                    if (colors[source] == Color.WHITE) {\r\n                        colors[source] = Color.RED;\r\n\r\n                        \/\/add it to queue for BFS\r\n\r\n                        queue.add(source);\r\n\r\n                 while (!queue.isEmpty()) {\r\n                    int v = queue.remove();\r\n                    for (int i = 0; i &lt; adjList[v].size(); i++) {\r\n                        int dest = adjList[v].get(i);\r\n\r\n                        if (colors[dest] == Color.WHITE) {\r\n\r\n                            if (colors[v] == Color.RED) {                     \r\n                            colors[dest] = Color.GREEN;\r\n                            } \r\n                    else if (colors[v] == Color.GREEN)\r\n                     {\r\n                        colors[dest] = Color.RED;\r\n                     }\r\n                    queue.add(dest);\r\n                } \r\n                else if (colors[v] == colors[dest]) {\r\n\r\n                    return false;\r\n                    }\r\n                }\r\n            }\r\n        }\r\n    }  \r\n                return true;\r\n            }\r\n        }\r\n        public static void main(String[] args) {\r\n            Scanner sc = new Scanner(System.in);\r\n            int t = sc.nextInt();\r\n            while(t--&gt;0)\r\n            {\r\n            int n = sc.nextInt();\r\n            int e = sc.nextInt();\r\n            Graph graph = new Graph(n);\r\n            while(e--&gt;0)\r\n            {\r\n                int u = sc.nextInt();\r\n                int v = sc.nextInt();\r\n                graph.addEdge(u,v);\r\n\r\n            }\r\n\r\n            boolean result = graph.isBipartite(graph);\r\n            if(result)\r\n            System.out.println(\"Yes\");\r\n            else\r\n            System.out.println(\"No\");\r\n            }\r\n\r\n\r\n        }\r\n\r\n    }\r\n<\/pre>\r\n<!-- \/wp:enlighter\/codeblock -->\r\n\t\t\t\t\t\t <\/div>\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t <\/div>\r\n\t\t\t\t\t \r\n\t\t\t\t <\/div>\r\n <script>\r\n\t\tjQuery(function () {\r\n\t\t\tjQuery('#myTab_1897 a:first').tab('show')\r\n\t\t});\r\n\t\t\r\n\t\t\t\tjQuery(function(){\r\n\t\t\tvar b=\"fadeIn\";\r\n\t\t\tvar c;\r\n\t\t\tvar a;\r\n\t\t\td(jQuery(\"#myTab_1897 a\"),jQuery(\"#tab-content_1897\"));function d(e,f,g){\r\n\t\t\t\te.click(function(i){\r\n\t\t\t\t\ti.preventDefault();\r\n\t\t\t\t\tjQuery(this).tab(\"show\");\r\n\t\t\t\t\tvar h=jQuery(this).data(\"easein\");\r\n\t\t\t\t\tif(c){c.removeClass(a);}\r\n\t\t\t\t\tif(h){f.find(\"div.active\").addClass(\"animated \"+h);a=h;}\r\n\t\t\t\t\telse{if(g){f.find(\"div.active\").addClass(\"animated \"+g);a=g;}else{f.find(\"div.active\").addClass(\"animated \"+b);a=b;}}c=f.find(\"div.active\");\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t});\r\n\t\t\r\n\r\n\t\tfunction do_resize(){\r\n\r\n\t\t\tvar width=jQuery( '.tab-content .tab-pane iframe' ).width();\r\n\t\t\tvar height=jQuery( '.tab-content .tab-pane iframe' ).height();\r\n\r\n\t\t\tvar toggleSize = true;\r\n\t\t\tjQuery('iframe').animate({\r\n\t\t\t    width: toggleSize ? width : 640,\r\n\t\t\t    height: toggleSize ? height : 360\r\n\t\t\t  }, 250);\r\n\r\n\t\t\t  toggleSize = !toggleSize;\r\n\t\t}\r\n\r\n\r\n\t<\/script>\r\n\t\t\t\t\r\n\t\t\t<br \/>\n[forminator_quiz id=&quot;1930&quot;]<\/p>\n<p>This article tried to discuss <strong>Depth First Search, Disjoint Set<\/strong>. Hope this blog helps you understand and solve the problem. To practice more problems on Depth First Search, Disjoint Set you can check out <a href=\"#\"><\/a>.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Concepts Used Depth First Search, Disjoint Set Difficulty Level Medium Problem Statement : There are two clans numbered sequentially from 1 to N and given two integers, u and v denoting the clan numbers that are fighting each other. We assume that the clans of one nation do not fight each other, they only fight [&hellip;]<\/p>\n","protected":false},"author":52,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"footnotes":""},"categories":[114],"tags":[],"class_list":["post-1875","post","type-post","status-publish","format-standard","hentry","category-graphs-interview-questions"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v25.8 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Graphs Interview Questions | Clan War | Prepbytes<\/title>\n<meta name=\"description\" content=\"A Bipartite Graph (or Bigraph) Is a Graph Whose Vertices Divided Into Two Disjoint and Independent Sets U and V .that Every Edge Connects a Vertex in U to One in V.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/prepbytes.com\/blog\/clan-war\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Graphs Interview Questions | Clan War | Prepbytes\" \/>\n<meta property=\"og:description\" content=\"A Bipartite Graph (or Bigraph) Is a Graph Whose Vertices Divided Into Two Disjoint and Independent Sets U and V .that Every Edge Connects a Vertex in U to One in V.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/prepbytes.com\/blog\/clan-war\/\" \/>\n<meta property=\"og:site_name\" content=\"PrepBytes Blog\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/prepbytes0211\/\" \/>\n<meta property=\"article:published_time\" content=\"2020-07-01T09:47:21+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2022-03-28T01:17:47+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/prepbytes-misc-images.s3.ap-south-1.amazonaws.com\/assets\/1645097266749-Article_285.png\" \/>\n<meta name=\"author\" content=\"Prepbytes\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Prepbytes\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"3 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/prepbytes.com\/blog\/clan-war\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/prepbytes.com\/blog\/clan-war\/\"},\"author\":{\"name\":\"Prepbytes\",\"@id\":\"http:\/\/43.205.93.38\/#\/schema\/person\/3f7dc4ae851791d5947a7f99df363d5e\"},\"headline\":\"Clan War\",\"datePublished\":\"2020-07-01T09:47:21+00:00\",\"dateModified\":\"2022-03-28T01:17:47+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/prepbytes.com\/blog\/clan-war\/\"},\"wordCount\":577,\"commentCount\":0,\"publisher\":{\"@id\":\"http:\/\/43.205.93.38\/#organization\"},\"image\":{\"@id\":\"https:\/\/prepbytes.com\/blog\/clan-war\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/prepbytes-misc-images.s3.ap-south-1.amazonaws.com\/assets\/1645097266749-Article_285.png\",\"articleSection\":[\"Graphs Interview Questions\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/prepbytes.com\/blog\/clan-war\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/prepbytes.com\/blog\/clan-war\/\",\"url\":\"https:\/\/prepbytes.com\/blog\/clan-war\/\",\"name\":\"Graphs Interview Questions | Clan War | Prepbytes\",\"isPartOf\":{\"@id\":\"http:\/\/43.205.93.38\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/prepbytes.com\/blog\/clan-war\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/prepbytes.com\/blog\/clan-war\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/prepbytes-misc-images.s3.ap-south-1.amazonaws.com\/assets\/1645097266749-Article_285.png\",\"datePublished\":\"2020-07-01T09:47:21+00:00\",\"dateModified\":\"2022-03-28T01:17:47+00:00\",\"description\":\"A Bipartite Graph (or Bigraph) Is a Graph Whose Vertices Divided Into Two Disjoint and Independent Sets U and V .that Every Edge Connects a Vertex in U to One in V.\",\"breadcrumb\":{\"@id\":\"https:\/\/prepbytes.com\/blog\/clan-war\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/prepbytes.com\/blog\/clan-war\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/prepbytes.com\/blog\/clan-war\/#primaryimage\",\"url\":\"https:\/\/prepbytes-misc-images.s3.ap-south-1.amazonaws.com\/assets\/1645097266749-Article_285.png\",\"contentUrl\":\"https:\/\/prepbytes-misc-images.s3.ap-south-1.amazonaws.com\/assets\/1645097266749-Article_285.png\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/prepbytes.com\/blog\/clan-war\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"http:\/\/43.205.93.38\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Graphs Interview Questions\",\"item\":\"https:\/\/prepbytes.com\/blog\/category\/graphs-interview-questions\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Clan War\"}]},{\"@type\":\"WebSite\",\"@id\":\"http:\/\/43.205.93.38\/#website\",\"url\":\"http:\/\/43.205.93.38\/\",\"name\":\"PrepBytes Blog\",\"description\":\"ONE-STOP RESOURCE FOR EVERYTHING RELATED TO CODING\",\"publisher\":{\"@id\":\"http:\/\/43.205.93.38\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"http:\/\/43.205.93.38\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"http:\/\/43.205.93.38\/#organization\",\"name\":\"Prepbytes\",\"url\":\"http:\/\/43.205.93.38\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"http:\/\/43.205.93.38\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/blog.prepbytes.com\/wp-content\/uploads\/2025\/07\/uzxxllgloialmn9mhwfe.webp\",\"contentUrl\":\"https:\/\/blog.prepbytes.com\/wp-content\/uploads\/2025\/07\/uzxxllgloialmn9mhwfe.webp\",\"width\":160,\"height\":160,\"caption\":\"Prepbytes\"},\"image\":{\"@id\":\"http:\/\/43.205.93.38\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/www.facebook.com\/prepbytes0211\/\",\"https:\/\/www.instagram.com\/prepbytes\/\",\"https:\/\/www.linkedin.com\/company\/prepbytes\/\",\"https:\/\/www.youtube.com\/channel\/UC0xGnHDrjUM1pDEK2Ka5imA\"]},{\"@type\":\"Person\",\"@id\":\"http:\/\/43.205.93.38\/#\/schema\/person\/3f7dc4ae851791d5947a7f99df363d5e\",\"name\":\"Prepbytes\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"http:\/\/43.205.93.38\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/232042cd1a1ea0e982c96d2a2ec93fb70a8e864e00784491231e7bfe5a9e06b5?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/232042cd1a1ea0e982c96d2a2ec93fb70a8e864e00784491231e7bfe5a9e06b5?s=96&d=mm&r=g\",\"caption\":\"Prepbytes\"},\"url\":\"https:\/\/prepbytes.com\/blog\/author\/gourav-jaincollegedekho-com\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Graphs Interview Questions | Clan War | Prepbytes","description":"A Bipartite Graph (or Bigraph) Is a Graph Whose Vertices Divided Into Two Disjoint and Independent Sets U and V .that Every Edge Connects a Vertex in U to One in V.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/prepbytes.com\/blog\/clan-war\/","og_locale":"en_US","og_type":"article","og_title":"Graphs Interview Questions | Clan War | Prepbytes","og_description":"A Bipartite Graph (or Bigraph) Is a Graph Whose Vertices Divided Into Two Disjoint and Independent Sets U and V .that Every Edge Connects a Vertex in U to One in V.","og_url":"https:\/\/prepbytes.com\/blog\/clan-war\/","og_site_name":"PrepBytes Blog","article_publisher":"https:\/\/www.facebook.com\/prepbytes0211\/","article_published_time":"2020-07-01T09:47:21+00:00","article_modified_time":"2022-03-28T01:17:47+00:00","og_image":[{"url":"https:\/\/prepbytes-misc-images.s3.ap-south-1.amazonaws.com\/assets\/1645097266749-Article_285.png","type":"","width":"","height":""}],"author":"Prepbytes","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Prepbytes","Est. reading time":"3 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/prepbytes.com\/blog\/clan-war\/#article","isPartOf":{"@id":"https:\/\/prepbytes.com\/blog\/clan-war\/"},"author":{"name":"Prepbytes","@id":"http:\/\/43.205.93.38\/#\/schema\/person\/3f7dc4ae851791d5947a7f99df363d5e"},"headline":"Clan War","datePublished":"2020-07-01T09:47:21+00:00","dateModified":"2022-03-28T01:17:47+00:00","mainEntityOfPage":{"@id":"https:\/\/prepbytes.com\/blog\/clan-war\/"},"wordCount":577,"commentCount":0,"publisher":{"@id":"http:\/\/43.205.93.38\/#organization"},"image":{"@id":"https:\/\/prepbytes.com\/blog\/clan-war\/#primaryimage"},"thumbnailUrl":"https:\/\/prepbytes-misc-images.s3.ap-south-1.amazonaws.com\/assets\/1645097266749-Article_285.png","articleSection":["Graphs Interview Questions"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/prepbytes.com\/blog\/clan-war\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/prepbytes.com\/blog\/clan-war\/","url":"https:\/\/prepbytes.com\/blog\/clan-war\/","name":"Graphs Interview Questions | Clan War | Prepbytes","isPartOf":{"@id":"http:\/\/43.205.93.38\/#website"},"primaryImageOfPage":{"@id":"https:\/\/prepbytes.com\/blog\/clan-war\/#primaryimage"},"image":{"@id":"https:\/\/prepbytes.com\/blog\/clan-war\/#primaryimage"},"thumbnailUrl":"https:\/\/prepbytes-misc-images.s3.ap-south-1.amazonaws.com\/assets\/1645097266749-Article_285.png","datePublished":"2020-07-01T09:47:21+00:00","dateModified":"2022-03-28T01:17:47+00:00","description":"A Bipartite Graph (or Bigraph) Is a Graph Whose Vertices Divided Into Two Disjoint and Independent Sets U and V .that Every Edge Connects a Vertex in U to One in V.","breadcrumb":{"@id":"https:\/\/prepbytes.com\/blog\/clan-war\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/prepbytes.com\/blog\/clan-war\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/prepbytes.com\/blog\/clan-war\/#primaryimage","url":"https:\/\/prepbytes-misc-images.s3.ap-south-1.amazonaws.com\/assets\/1645097266749-Article_285.png","contentUrl":"https:\/\/prepbytes-misc-images.s3.ap-south-1.amazonaws.com\/assets\/1645097266749-Article_285.png"},{"@type":"BreadcrumbList","@id":"https:\/\/prepbytes.com\/blog\/clan-war\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"http:\/\/43.205.93.38\/"},{"@type":"ListItem","position":2,"name":"Graphs Interview Questions","item":"https:\/\/prepbytes.com\/blog\/category\/graphs-interview-questions\/"},{"@type":"ListItem","position":3,"name":"Clan War"}]},{"@type":"WebSite","@id":"http:\/\/43.205.93.38\/#website","url":"http:\/\/43.205.93.38\/","name":"PrepBytes Blog","description":"ONE-STOP RESOURCE FOR EVERYTHING RELATED TO CODING","publisher":{"@id":"http:\/\/43.205.93.38\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"http:\/\/43.205.93.38\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"http:\/\/43.205.93.38\/#organization","name":"Prepbytes","url":"http:\/\/43.205.93.38\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"http:\/\/43.205.93.38\/#\/schema\/logo\/image\/","url":"https:\/\/blog.prepbytes.com\/wp-content\/uploads\/2025\/07\/uzxxllgloialmn9mhwfe.webp","contentUrl":"https:\/\/blog.prepbytes.com\/wp-content\/uploads\/2025\/07\/uzxxllgloialmn9mhwfe.webp","width":160,"height":160,"caption":"Prepbytes"},"image":{"@id":"http:\/\/43.205.93.38\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/prepbytes0211\/","https:\/\/www.instagram.com\/prepbytes\/","https:\/\/www.linkedin.com\/company\/prepbytes\/","https:\/\/www.youtube.com\/channel\/UC0xGnHDrjUM1pDEK2Ka5imA"]},{"@type":"Person","@id":"http:\/\/43.205.93.38\/#\/schema\/person\/3f7dc4ae851791d5947a7f99df363d5e","name":"Prepbytes","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"http:\/\/43.205.93.38\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/232042cd1a1ea0e982c96d2a2ec93fb70a8e864e00784491231e7bfe5a9e06b5?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/232042cd1a1ea0e982c96d2a2ec93fb70a8e864e00784491231e7bfe5a9e06b5?s=96&d=mm&r=g","caption":"Prepbytes"},"url":"https:\/\/prepbytes.com\/blog\/author\/gourav-jaincollegedekho-com\/"}]}},"_links":{"self":[{"href":"https:\/\/prepbytes.com\/blog\/wp-json\/wp\/v2\/posts\/1875","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prepbytes.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prepbytes.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prepbytes.com\/blog\/wp-json\/wp\/v2\/users\/52"}],"replies":[{"embeddable":true,"href":"https:\/\/prepbytes.com\/blog\/wp-json\/wp\/v2\/comments?post=1875"}],"version-history":[{"count":10,"href":"https:\/\/prepbytes.com\/blog\/wp-json\/wp\/v2\/posts\/1875\/revisions"}],"predecessor-version":[{"id":8270,"href":"https:\/\/prepbytes.com\/blog\/wp-json\/wp\/v2\/posts\/1875\/revisions\/8270"}],"wp:attachment":[{"href":"https:\/\/prepbytes.com\/blog\/wp-json\/wp\/v2\/media?parent=1875"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prepbytes.com\/blog\/wp-json\/wp\/v2\/categories?post=1875"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prepbytes.com\/blog\/wp-json\/wp\/v2\/tags?post=1875"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}