#include #include #include using namespace std; int main(int argc, char* argv[]) { int n = atoi(argv[1]); int m = atoi(argv[2]); int seed = atoi(argv[3]); std::mt19937 rng(seed); std::uniform_int_distribution vertices(1, n); vector > edges; for (int i = 0; i < n - 1; ++i) { edges.push_back(make_pair(i + 1, i + 2)); } for (int i = 0; i < m - (n - 1); ++i) { int a = vertices(rng); int b = vertices(rng); while (a == b) { b = vertices(rng); } if (a < b) { int t = a; a = b; b = t; } edges.push_back(make_pair(a, b)); } cout << n << " " << edges.size() << "\n"; for (const pair e : edges) { cout << e.first << " " << e.second << "\n"; } return 0; }