#include #include #include #include #include using namespace std; const int MAX_UDI = 100000000; 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 udi(-MAX_UDI, MAX_UDI); std::uniform_int_distribution indices(1, n); set local_mins_set; vector local_mins; for (int i = 0; i < n / 2; ++i) { int candidate = udi(rng); while (local_mins_set.find(candidate) != local_mins_set.end()) { candidate = udi(rng); } local_mins.push_back(candidate); local_mins_set.insert(candidate); } sort(local_mins.begin(), local_mins.end()); vector e; for (int i = 0; i < n / 2; ++i) { e.push_back(local_mins[i]); if (i < n / 2 - 1) { e.push_back(MAX_UDI); } } while (e.size() < n) { e.push_back(MAX_UDI); } cout << n << endl; for (int i = 0; i < n; ++i) { cout << e[i]; if (i < n - 1) { cout << " "; } } cout << endl; cout << m << endl; for (int i = 0; i < m; ++i) { cout << "check "; int s = indices(rng); int f = indices(rng); if (s > f) { int t = s; s = f; f = t; } cout << s << " " << f << endl; } return 0; }