// graph and its representations
//1> adjacency matrix 
// 2d array size v*v --> v is the no of vertices of a graph
// pros --> represenattion is easier removing edge can be done in O(1)
// cons: consumes more space o(V^2)

// adjacency list --> array of list
// unordered_map<int, vector<int>>mp;
// vector<int>adj[] --> array of vector
// list<int>*l; // pointer to an array of lists 