#include<iostream>
#include<vector>
#include<list>
#include<stdlib.h>
using namespace std;
struct graph{
list< int > vertex;
} * v;
int main( )
{
int i,j,num_vertices,num_connected,m,counter,w,x,flag= 0 ,c= 0 ;
list< int > :: iterator it;
cout << "Enter the number of vertices the graph contains..." << endl;
cin >> num_vertices;
v = new graph[ num_vertices] ;
if ( v == 0 )
cout << "Error: memory could not be allocated" ;
for ( i= 1 ; i<= num_vertices; i++ )
{
cout << "Enter the number of vertices to which vertex " << i << " is connected" << endl;
cin >> num_connected;
for ( j= 1 ; j<= num_connected; j++ )
{
cin >> m;
( v+ i) - > vertex.push_back ( m) ;
}
}
for ( i= 1 ; i<= num_vertices; i++ )
{
for ( it= ( v+ i) - > vertex.begin ( ) ; it! = ( v+ i) - > vertex.end ( ) ; it++ )
cout << * it<< "->" ;
cout << endl;
}
return 0 ;
}
I2luY2x1ZGU8aW9zdHJlYW0+CiNpbmNsdWRlPHZlY3Rvcj4KI2luY2x1ZGU8bGlzdD4KI2luY2x1ZGU8c3RkbGliLmg+Cgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKc3RydWN0IGdyYXBoewogICAgbGlzdDxpbnQ+IHZlcnRleDsKfSp2OwoKCmludCBtYWluKCkKewoKIGludCBpLGosbnVtX3ZlcnRpY2VzLG51bV9jb25uZWN0ZWQsbSxjb3VudGVyLHcseCxmbGFnPTAsYz0wOwogbGlzdDxpbnQ+OjppdGVyYXRvciBpdDsKCiBjb3V0PDwiRW50ZXIgdGhlIG51bWJlciBvZiB2ZXJ0aWNlcyB0aGUgZ3JhcGggY29udGFpbnMuLi4iPDxlbmRsOwogY2luPj5udW1fdmVydGljZXM7CgogdiA9IG5ldyAgZ3JhcGhbbnVtX3ZlcnRpY2VzXTsKCmlmICh2ID09IDApCiAgICBjb3V0IDw8ICJFcnJvcjogbWVtb3J5IGNvdWxkIG5vdCBiZSBhbGxvY2F0ZWQiOwoKIGZvcihpPTE7aTw9bnVtX3ZlcnRpY2VzO2krKykKIHsKICAgICBjb3V0PDwiRW50ZXIgdGhlIG51bWJlciBvZiB2ZXJ0aWNlcyB0byB3aGljaCAgdmVydGV4ICI8PCBpIDw8IiBpcyBjb25uZWN0ZWQiPDxlbmRsOwogICAgIGNpbj4+bnVtX2Nvbm5lY3RlZDsKCiAgICAgZm9yKGo9MTtqPD1udW1fY29ubmVjdGVkO2orKykKICAgICB7CiAgICAgICAgIGNpbj4+bTsKICAgICAgICAgKHYraSktPnZlcnRleC5wdXNoX2JhY2sobSk7CiAgICAgfQogfQoKICAgIGZvcihpPTE7aTw9bnVtX3ZlcnRpY2VzO2krKykKIHsKICAgIGZvcihpdD0gKHYraSktPnZlcnRleC5iZWdpbigpO2l0IT0gKHYraSktPnZlcnRleC5lbmQoKTtpdCsrKQogICAgICBjb3V0PDwqaXQ8PCItPiI7CiAgICAgICAgY291dDw8ZW5kbDsKIH0KCiByZXR1cm4gMDsKCn0K