package chelper; import net.egork.chelper.task.Test; import net.egork.chelper.tester.TestCase; import java.util.ArrayList; import java.util.Collection; import java.util.Collections; import java.util.List; import java.util.Random; public class TaskDTestCase { @TestCase public Collection createTests() { List tests = new ArrayList<>(); tests.add(test1()); tests.add(test2()); tests.add(test3()); return tests; } private Test test1() { StringBuilder in = new StringBuilder(); int n = 300000; int m = 500000; in.append(n + " " + m + "\n"); for (int i = 1; i <= n; i++) { in.append(i + " "); } in.append("\n"); int im = m; for (int i = n; i >= 1; i--) { for (int j = i + 1; j <= n && im > 0; j++) { in.append(i + " " + j + "\n"); im--; } } return new Test(in.toString()); } private Test test2() { StringBuilder in = new StringBuilder(); int n = 300000; int m = 0; in.append(n + " " + m + "\n"); for (int i = 1; i <= n; i++) { in.append(i + " "); } in.append("\n"); int im = m; for (int i = n; i >= 1; i--) { for (int j = i + 1; j <= n && im > 0; j++) { in.append(i + " " + j + "\n"); im--; } } return new Test(in.toString()); } private Test test3() { StringBuilder in = new StringBuilder(); int n = 300000; int m = 500000; in.append(n + " " + m + "\n"); for (int i = 1; i <= n; i++) { in.append(i + " "); } in.append("\n"); int im = m; Random random = new Random(0); for (int i = m; i >= 1 && im > 0; i--) { int l = random.nextInt(n) + 1; int r = random.nextInt(n) + 1; in.append(l + " " + r + "\n"); im--; } return new Test(in.toString()); } }