#include <iostream> #include <vector> #include <map> typedef std::vector<uint> PathType; typedef std::map<uint,bool> VisType; typedef std::map<uint,std::vector<uint>> RelType; void PrintPath(uint I, PathType P, VisType V, RelType R) { if (V.find(I) != V.end()) return; P.push_back(I); V[I]=true; for(const auto& x: P) std::cout << ":" << x; std::cout << std::endl; for(const auto& i: R[I]) PrintPath(i,P,V,R); } int main() { VisType Vis; PathType Path; RelType Rel = { {0,{1,5,6}}, {1,{0,2,6}}, {2,{1,3,6}}, {3,{2,4,6}}, {4,{3,5,6}}, {5,{0,4,6}}, {6,{0,1,2,3,4,5}} }; for(auto const& i:Rel) PrintPath(i.first,Path,Vis,Rel); }
Standard input is empty
:0 :0:1 :0:1:2 :0:1:2:3 :0:1:2:3:4 :0:1:2:3:4:5 :0:1:2:3:4:5:6 :0:1:2:3:4:6 :0:1:2:3:4:6:5 :0:1:2:3:6 :0:1:2:3:6:4 :0:1:2:3:6:4:5 :0:1:2:3:6:5 :0:1:2:3:6:5:4 :0:1:2:6 :0:1:2:6:3 :0:1:2:6:3:4 :0:1:2:6:3:4:5 :0:1:2:6:4 :0:1:2:6:4:3 :0:1:2:6:4:5 :0:1:2:6:5 :0:1:2:6:5:4 :0:1:2:6:5:4:3 :0:1:6 :0:1:6:2 :0:1:6:2:3 :0:1:6:2:3:4 :0:1:6:2:3:4:5 :0:1:6:3 :0:1:6:3:2 :0:1:6:3:4 :0:1:6:3:4:5 :0:1:6:4 :0:1:6:4:3 :0:1:6:4:3:2 :0:1:6:4:5 :0:1:6:5 :0:1:6:5:4 :0:1:6:5:4:3 :0:1:6:5:4:3:2 :0:5 :0:5:4 :0:5:4:3 :0:5:4:3:2 :0:5:4:3:2:1 :0:5:4:3:2:1:6 :0:5:4:3:2:6 :0:5:4:3:2:6:1 :0:5:4:3:6 :0:5:4:3:6:1 :0:5:4:3:6:1:2 :0:5:4:3:6:2 :0:5:4:3:6:2:1 :0:5:4:6 :0:5:4:6:1 :0:5:4:6:1:2 :0:5:4:6:1:2:3 :0:5:4:6:2 :0:5:4:6:2:1 :0:5:4:6:2:3 :0:5:4:6:3 :0:5:4:6:3:2 :0:5:4:6:3:2:1 :0:5:6 :0:5:6:1 :0:5:6:1:2 :0:5:6:1:2:3 :0:5:6:1:2:3:4 :0:5:6:2 :0:5:6:2:1 :0:5:6:2:3 :0:5:6:2:3:4 :0:5:6:3 :0:5:6:3:2 :0:5:6:3:2:1 :0:5:6:3:4 :0:5:6:4 :0:5:6:4:3 :0:5:6:4:3:2 :0:5:6:4:3:2:1 :0:6 :0:6:1 :0:6:1:2 :0:6:1:2:3 :0:6:1:2:3:4 :0:6:1:2:3:4:5 :0:6:2 :0:6:2:1 :0:6:2:3 :0:6:2:3:4 :0:6:2:3:4:5 :0:6:3 :0:6:3:2 :0:6:3:2:1 :0:6:3:4 :0:6:3:4:5 :0:6:4 :0:6:4:3 :0:6:4:3:2 :0:6:4:3:2:1 :0:6:4:5 :0:6:5 :0:6:5:4 :0:6:5:4:3 :0:6:5:4:3:2 :0:6:5:4:3:2:1 :1 :1:0 :1:0:5 :1:0:5:4 :1:0:5:4:3 :1:0:5:4:3:2 :1:0:5:4:3:2:6 :1:0:5:4:3:6 :1:0:5:4:3:6:2 :1:0:5:4:6 :1:0:5:4:6:2 :1:0:5:4:6:2:3 :1:0:5:4:6:3 :1:0:5:4:6:3:2 :1:0:5:6 :1:0:5:6:2 :1:0:5:6:2:3 :1:0:5:6:2:3:4 :1:0:5:6:3 :1:0:5:6:3:2 :1:0:5:6:3:4 :1:0:5:6:4 :1:0:5:6:4:3 :1:0:5:6:4:3:2 :1:0:6 :1:0:6:2 :1:0:6:2:3 :1:0:6:2:3:4 :1:0:6:2:3:4:5 :1:0:6:3 :1:0:6:3:2 :1:0:6:3:4 :1:0:6:3:4:5 :1:0:6:4 :1:0:6:4:3 :1:0:6:4:3:2 :1:0:6:4:5 :1:0:6:5 :1:0:6:5:4 :1:0:6:5:4:3 :1:0:6:5:4:3:2 :1:2 :1:2:3 :1:2:3:4 :1:2:3:4:5 :1:2:3:4:5:0 :1:2:3:4:5:0:6 :1:2:3:4:5:6 :1:2:3:4:5:6:0 :1:2:3:4:6 :1:2:3:4:6:0 :1:2:3:4:6:0:5 :1:2:3:4:6:5 :1:2:3:4:6:5:0 :1:2:3:6 :1:2:3:6:0 :1:2:3:6:0:5 :1:2:3:6:0:5:4 :1:2:3:6:4 :1:2:3:6:4:5 :1:2:3:6:4:5:0 :1:2:3:6:5 :1:2:3:6:5:0 :1:2:3:6:5:4 :1:2:6 :1:2:6:0 :1:2:6:0:5 :1:2:6:0:5:4 :1:2:6:0:5:4:3 :1:2:6:3 :1:2:6:3:4 :1:2:6:3:4:5 :1:2:6:3:4:5:0 :1:2:6:4 :1:2:6:4:3 :1:2:6:4:5 :1:2:6:4:5:0 :1:2:6:5 :1:2:6:5:0 :1:2:6:5:4 :1:2:6:5:4:3 :1:6 :1:6:0 :1:6:0:5 :1:6:0:5:4 :1:6:0:5:4:3 :1:6:0:5:4:3:2 :1:6:2 :1:6:2:3 :1:6:2:3:4 :1:6:2:3:4:5 :1:6:2:3:4:5:0 :1:6:3 :1:6:3:2 :1:6:3:4 :1:6:3:4:5 :1:6:3:4:5:0 :1:6:4 :1:6:4:3 :1:6:4:3:2 :1:6:4:5 :1:6:4:5:0 :1:6:5 :1:6:5:0 :1:6:5:4 :1:6:5:4:3 :1:6:5:4:3:2 :2 :2:1 :2:1:0 :2:1:0:5 :2:1:0:5:4 :2:1:0:5:4:3 :2:1:0:5:4:3:6 :2:1:0:5:4:6 :2:1:0:5:4:6:3 :2:1:0:5:6 :2:1:0:5:6:3 :2:1:0:5:6:3:4 :2:1:0:5:6:4 :2:1:0:5:6:4:3 :2:1:0:6 :2:1:0:6:3 :2:1:0:6:3:4 :2:1:0:6:3:4:5 :2:1:0:6:4 :2:1:0:6:4:3 :2:1:0:6:4:5 :2:1:0:6:5 :2:1:0:6:5:4 :2:1:0:6:5:4:3 :2:1:6 :2:1:6:0 :2:1:6:0:5 :2:1:6:0:5:4 :2:1:6:0:5:4:3 :2:1:6:3 :2:1:6:3:4 :2:1:6:3:4:5 :2:1:6:3:4:5:0 :2:1:6:4 :2:1:6:4:3 :2:1:6:4:5 :2:1:6:4:5:0 :2:1:6:5 :2:1:6:5:0 :2:1:6:5:4 :2:1:6:5:4:3 :2:3 :2:3:4 :2:3:4:5 :2:3:4:5:0 :2:3:4:5:0:1 :2:3:4:5:0:1:6 :2:3:4:5:0:6 :2:3:4:5:0:6:1 :2:3:4:5:6 :2:3:4:5:6:0 :2:3:4:5:6:0:1 :2:3:4:5:6:1 :2:3:4:5:6:1:0 :2:3:4:6 :2:3:4:6:0 :2:3:4:6:0:1 :2:3:4:6:0:5 :2:3:4:6:1 :2:3:4:6:1:0 :2:3:4:6:1:0:5 :2:3:4:6:5 :2:3:4:6:5:0 :2:3:4:6:5:0:1 :2:3:6 :2:3:6:0 :2:3:6:0:1 :2:3:6:0:5 :2:3:6:0:5:4 :2:3:6:1 :2:3:6:1:0 :2:3:6:1:0:5 :2:3:6:1:0:5:4 :2:3:6:4 :2:3:6:4:5 :2:3:6:4:5:0 :2:3:6:4:5:0:1 :2:3:6:5 :2:3:6:5:0 :2:3:6:5:0:1 :2:3:6:5:4 :2:6 :2:6:0 :2:6:0:1 :2:6:0:5 :2:6:0:5:4 :2:6:0:5:4:3 :2:6:1 :2:6:1:0 :2:6:1:0:5 :2:6:1:0:5:4 :2:6:1:0:5:4:3 :2:6:3 :2:6:3:4 :2:6:3:4:5 :2:6:3:4:5:0 :2:6:3:4:5:0:1 :2:6:4 :2:6:4:3 :2:6:4:5 :2:6:4:5:0 :2:6:4:5:0:1 :2:6:5 :2:6:5:0 :2:6:5:0:1 :2:6:5:4 :2:6:5:4:3 :3 :3:2 :3:2:1 :3:2:1:0 :3:2:1:0:5 :3:2:1:0:5:4 :3:2:1:0:5:4:6 :3:2:1:0:5:6 :3:2:1:0:5:6:4 :3:2:1:0:6 :3:2:1:0:6:4 :3:2:1:0:6:4:5 :3:2:1:0:6:5 :3:2:1:0:6:5:4 :3:2:1:6 :3:2:1:6:0 :3:2:1:6:0:5 :3:2:1:6:0:5:4 :3:2:1:6:4 :3:2:1:6:4:5 :3:2:1:6:4:5:0 :3:2:1:6:5 :3:2:1:6:5:0 :3:2:1:6:5:4 :3:2:6 :3:2:6:0 :3:2:6:0:1 :3:2:6:0:5 :3:2:6:0:5:4 :3:2:6:1 :3:2:6:1:0 :3:2:6:1:0:5 :3:2:6:1:0:5:4 :3:2:6:4 :3:2:6:4:5 :3:2:6:4:5:0 :3:2:6:4:5:0:1 :3:2:6:5 :3:2:6:5:0 :3:2:6:5:0:1 :3:2:6:5:4 :3:4 :3:4:5 :3:4:5:0 :3:4:5:0:1 :3:4:5:0:1:2 :3:4:5:0:1:2:6 :3:4:5:0:1:6 :3:4:5:0:1:6:2 :3:4:5:0:6 :3:4:5:0:6:1 :3:4:5:0:6:1:2 :3:4:5:0:6:2 :3:4:5:0:6:2:1 :3:4:5:6 :3:4:5:6:0 :3:4:5:6:0:1 :3:4:5:6:0:1:2 :3:4:5:6:1 :3:4:5:6:1:0 :3:4:5:6:1:2 :3:4:5:6:2 :3:4:5:6:2:1 :3:4:5:6:2:1:0 :3:4:6 :3:4:6:0 :3:4:6:0:1 :3:4:6:0:1:2 :3:4:6:0:5 :3:4:6:1 :3:4:6:1:0 :3:4:6:1:0:5 :3:4:6:1:2 :3:4:6:2 :3:4:6:2:1 :3:4:6:2:1:0 :3:4:6:2:1:0:5 :3:4:6:5 :3:4:6:5:0 :3:4:6:5:0:1 :3:4:6:5:0:1:2 :3:6 :3:6:0 :3:6:0:1 :3:6:0:1:2 :3:6:0:5 :3:6:0:5:4 :3:6:1 :3:6:1:0 :3:6:1:0:5 :3:6:1:0:5:4 :3:6:1:2 :3:6:2 :3:6:2:1 :3:6:2:1:0 :3:6:2:1:0:5 :3:6:2:1:0:5:4 :3:6:4 :3:6:4:5 :3:6:4:5:0 :3:6:4:5:0:1 :3:6:4:5:0:1:2 :3:6:5 :3:6:5:0 :3:6:5:0:1 :3:6:5:0:1:2 :3:6:5:4 :4 :4:3 :4:3:2 :4:3:2:1 :4:3:2:1:0 :4:3:2:1:0:5 :4:3:2:1:0:5:6 :4:3:2:1:0:6 :4:3:2:1:0:6:5 :4:3:2:1:6 :4:3:2:1:6:0 :4:3:2:1:6:0:5 :4:3:2:1:6:5 :4:3:2:1:6:5:0 :4:3:2:6 :4:3:2:6:0 :4:3:2:6:0:1 :4:3:2:6:0:5 :4:3:2:6:1 :4:3:2:6:1:0 :4:3:2:6:1:0:5 :4:3:2:6:5 :4:3:2:6:5:0 :4:3:2:6:5:0:1 :4:3:6 :4:3:6:0 :4:3:6:0:1 :4:3:6:0:1:2 :4:3:6:0:5 :4:3:6:1 :4:3:6:1:0 :4:3:6:1:0:5 :4:3:6:1:2 :4:3:6:2 :4:3:6:2:1 :4:3:6:2:1:0 :4:3:6:2:1:0:5 :4:3:6:5 :4:3:6:5:0 :4:3:6:5:0:1 :4:3:6:5:0:1:2 :4:5 :4:5:0 :4:5:0:1 :4:5:0:1:2 :4:5:0:1:2:3 :4:5:0:1:2:3:6 :4:5:0:1:2:6 :4:5:0:1:2:6:3 :4:5:0:1:6 :4:5:0:1:6:2 :4:5:0:1:6:2:3 :4:5:0:1:6:3 :4:5:0:1:6:3:2 :4:5:0:6 :4:5:0:6:1 :4:5:0:6:1:2 :4:5:0:6:1:2:3 :4:5:0:6:2 :4:5:0:6:2:1 :4:5:0:6:2:3 :4:5:0:6:3 :4:5:0:6:3:2 :4:5:0:6:3:2:1 :4:5:6 :4:5:6:0 :4:5:6:0:1 :4:5:6:0:1:2 :4:5:6:0:1:2:3 :4:5:6:1 :4:5:6:1:0 :4:5:6:1:2 :4:5:6:1:2:3 :4:5:6:2 :4:5:6:2:1 :4:5:6:2:1:0 :4:5:6:2:3 :4:5:6:3 :4:5:6:3:2 :4:5:6:3:2:1 :4:5:6:3:2:1:0 :4:6 :4:6:0 :4:6:0:1 :4:6:0:1:2 :4:6:0:1:2:3 :4:6:0:5 :4:6:1 :4:6:1:0 :4:6:1:0:5 :4:6:1:2 :4:6:1:2:3 :4:6:2 :4:6:2:1 :4:6:2:1:0 :4:6:2:1:0:5 :4:6:2:3 :4:6:3 :4:6:3:2 :4:6:3:2:1 :4:6:3:2:1:0 :4:6:3:2:1:0:5 :4:6:5 :4:6:5:0 :4:6:5:0:1 :4:6:5:0:1:2 :4:6:5:0:1:2:3 :5 :5:0 :5:0:1 :5:0:1:2 :5:0:1:2:3 :5:0:1:2:3:4 :5:0:1:2:3:4:6 :5:0:1:2:3:6 :5:0:1:2:3:6:4 :5:0:1:2:6 :5:0:1:2:6:3 :5:0:1:2:6:3:4 :5:0:1:2:6:4 :5:0:1:2:6:4:3 :5:0:1:6 :5:0:1:6:2 :5:0:1:6:2:3 :5:0:1:6:2:3:4 :5:0:1:6:3 :5:0:1:6:3:2 :5:0:1:6:3:4 :5:0:1:6:4 :5:0:1:6:4:3 :5:0:1:6:4:3:2 :5:0:6 :5:0:6:1 :5:0:6:1:2 :5:0:6:1:2:3 :5:0:6:1:2:3:4 :5:0:6:2 :5:0:6:2:1 :5:0:6:2:3 :5:0:6:2:3:4 :5:0:6:3 :5:0:6:3:2 :5:0:6:3:2:1 :5:0:6:3:4 :5:0:6:4 :5:0:6:4:3 :5:0:6:4:3:2 :5:0:6:4:3:2:1 :5:4 :5:4:3 :5:4:3:2 :5:4:3:2:1 :5:4:3:2:1:0 :5:4:3:2:1:0:6 :5:4:3:2:1:6 :5:4:3:2:1:6:0 :5:4:3:2:6 :5:4:3:2:6:0 :5:4:3:2:6:0:1 :5:4:3:2:6:1 :5:4:3:2:6:1:0 :5:4:3:6 :5:4:3:6:0 :5:4:3:6:0:1 :5:4:3:6:0:1:2 :5:4:3:6:1 :5:4:3:6:1:0 :5:4:3:6:1:2 :5:4:3:6:2 :5:4:3:6:2:1 :5:4:3:6:2:1:0 :5:4:6 :5:4:6:0 :5:4:6:0:1 :5:4:6:0:1:2 :5:4:6:0:1:2:3 :5:4:6:1 :5:4:6:1:0 :5:4:6:1:2 :5:4:6:1:2:3 :5:4:6:2 :5:4:6:2:1 :5:4:6:2:1:0 :5:4:6:2:3 :5:4:6:3 :5:4:6:3:2 :5:4:6:3:2:1 :5:4:6:3:2:1:0 :5:6 :5:6:0 :5:6:0:1 :5:6:0:1:2 :5:6:0:1:2:3 :5:6:0:1:2:3:4 :5:6:1 :5:6:1:0 :5:6:1:2 :5:6:1:2:3 :5:6:1:2:3:4 :5:6:2 :5:6:2:1 :5:6:2:1:0 :5:6:2:3 :5:6:2:3:4 :5:6:3 :5:6:3:2 :5:6:3:2:1 :5:6:3:2:1:0 :5:6:3:4 :5:6:4 :5:6:4:3 :5:6:4:3:2 :5:6:4:3:2:1 :5:6:4:3:2:1:0 :6 :6:0 :6:0:1 :6:0:1:2 :6:0:1:2:3 :6:0:1:2:3:4 :6:0:1:2:3:4:5 :6:0:5 :6:0:5:4 :6:0:5:4:3 :6:0:5:4:3:2 :6:0:5:4:3:2:1 :6:1 :6:1:0 :6:1:0:5 :6:1:0:5:4 :6:1:0:5:4:3 :6:1:0:5:4:3:2 :6:1:2 :6:1:2:3 :6:1:2:3:4 :6:1:2:3:4:5 :6:1:2:3:4:5:0 :6:2 :6:2:1 :6:2:1:0 :6:2:1:0:5 :6:2:1:0:5:4 :6:2:1:0:5:4:3 :6:2:3 :6:2:3:4 :6:2:3:4:5 :6:2:3:4:5:0 :6:2:3:4:5:0:1 :6:3 :6:3:2 :6:3:2:1 :6:3:2:1:0 :6:3:2:1:0:5 :6:3:2:1:0:5:4 :6:3:4 :6:3:4:5 :6:3:4:5:0 :6:3:4:5:0:1 :6:3:4:5:0:1:2 :6:4 :6:4:3 :6:4:3:2 :6:4:3:2:1 :6:4:3:2:1:0 :6:4:3:2:1:0:5 :6:4:5 :6:4:5:0 :6:4:5:0:1 :6:4:5:0:1:2 :6:4:5:0:1:2:3 :6:5 :6:5:0 :6:5:0:1 :6:5:0:1:2 :6:5:0:1:2:3 :6:5:0:1:2:3:4 :6:5:4 :6:5:4:3 :6:5:4:3:2 :6:5:4:3:2:1 :6:5:4:3:2:1:0