#include <algorithm>
#include <cassert>
#include <map>
#include <iostream>
#include <iterator>
#include <sstream>
#include <vector>
int main()
{
std::istream& ifs = std::cin; // use std::ifstream as you currently do
// ifs.open(...); // ideone cannot read file so we read stdin instead
// vertex -> adjacent vertices
std::map<int, std::vector<int>> map;
std::string line;
while (std::getline(ifs, line))
{
std::istringstream is(line);
std::vector<int> ns;
std::copy(std::istream_iterator<int>(is), std::istream_iterator<int>(),
std::back_inserter(ns));
assert(ns.size() > 1); // or throw something
// The first is the vertex
map[ns[0]] = std::vector<int>(ns.begin() + 1, ns.end());
}
for (auto const& pair: map)
{
std::cout << "Vertex " << pair.first << " has the following neighbour: ";
std::copy(pair.second.begin(), pair.second.end(),
std::ostream_iterator<int>(std::cout, " "));
std::cout << "\n";
}
return 0;
}
I2luY2x1ZGUgPGFsZ29yaXRobT4KI2luY2x1ZGUgPGNhc3NlcnQ+CiNpbmNsdWRlIDxtYXA+CiNpbmNsdWRlIDxpb3N0cmVhbT4KI2luY2x1ZGUgPGl0ZXJhdG9yPgojaW5jbHVkZSA8c3N0cmVhbT4KI2luY2x1ZGUgPHZlY3Rvcj4KCmludCBtYWluKCkKewoJc3RkOjppc3RyZWFtJiBpZnMgPSBzdGQ6OmNpbjsgLy8gdXNlIHN0ZDo6aWZzdHJlYW0gYXMgeW91IGN1cnJlbnRseSBkbwoJLy8gaWZzLm9wZW4oLi4uKTsgLy8gaWRlb25lIGNhbm5vdCByZWFkIGZpbGUgc28gd2UgcmVhZCBzdGRpbiBpbnN0ZWFkCgkKCS8vIHZlcnRleCAtPiBhZGphY2VudCB2ZXJ0aWNlcwoJc3RkOjptYXA8aW50LCBzdGQ6OnZlY3RvcjxpbnQ+PiBtYXA7CgkKCXN0ZDo6c3RyaW5nIGxpbmU7Cgl3aGlsZSAoc3RkOjpnZXRsaW5lKGlmcywgbGluZSkpCgl7CgkJc3RkOjppc3RyaW5nc3RyZWFtIGlzKGxpbmUpOwoJCXN0ZDo6dmVjdG9yPGludD4gbnM7CgkJc3RkOjpjb3B5KHN0ZDo6aXN0cmVhbV9pdGVyYXRvcjxpbnQ+KGlzKSwgc3RkOjppc3RyZWFtX2l0ZXJhdG9yPGludD4oKSwgCgkJICAgICAgICAgIHN0ZDo6YmFja19pbnNlcnRlcihucykpOwoJCQoJCWFzc2VydChucy5zaXplKCkgPiAxKTsgLy8gb3IgdGhyb3cgc29tZXRoaW5nCgkJCgkJLy8gVGhlIGZpcnN0IGlzIHRoZSB2ZXJ0ZXgKCQltYXBbbnNbMF1dID0gc3RkOjp2ZWN0b3I8aW50Pihucy5iZWdpbigpICsgMSwgbnMuZW5kKCkpOwoJfQoJCglmb3IgKGF1dG8gY29uc3QmIHBhaXI6IG1hcCkKCXsKCQlzdGQ6OmNvdXQgPDwgIlZlcnRleCAiIDw8IHBhaXIuZmlyc3QgPDwgIiBoYXMgdGhlIGZvbGxvd2luZyBuZWlnaGJvdXI6ICI7CgkJc3RkOjpjb3B5KHBhaXIuc2Vjb25kLmJlZ2luKCksIHBhaXIuc2Vjb25kLmVuZCgpLCAKCQkgICAgICAgICAgc3RkOjpvc3RyZWFtX2l0ZXJhdG9yPGludD4oc3RkOjpjb3V0LCAiICIpKTsKCQlzdGQ6OmNvdXQgPDwgIlxuIjsKCX0KCQoJcmV0dXJuIDA7Cn0=