I used Disjoint sets for the 0-difference edges and check for bipartite graph for 1-difference edges. The array zero is or 0-difference disjoint set, array hero holds the parent of every element, array arank defines the rank of every set (for union-by-rank) and the array whatup checks if all the same set element(0-difference elements) have the same color(have no difference at all).
Here is the code : CODE