1
0

gen-tree-graph.cpp 719 B

12345678910111213141516171819202122232425262728293031323334
  1. #include "testlib.h"
  2. #include <vector>
  3. using namespace std;
  4. int main(int argc, char* argv[])
  5. {
  6. registerGen(argc, argv, 1);
  7. int n = opt<int>(1);
  8. int t = opt<int>(2);
  9. vector<int> p(n);
  10. for (int i = 1; i < n; i++)
  11. p[i] = rnd.wnext(i, t);
  12. vector<int> perm = rnd.perm(n);
  13. vector<pair<int,int>> edges;
  14. for (int i = 1; i < n; i++)
  15. if (rnd.next(2))
  16. edges.push_back(make_pair(perm[i], perm[p[i]]));
  17. else
  18. edges.push_back(make_pair(perm[p[i]], perm[i]));
  19. shuffle(edges.begin(), edges.end());
  20. println(n);
  21. for (auto edge : edges)
  22. println(edge.first + 1, edge.second + 1);
  23. return 0;
  24. }