提交时间:2024-10-30 15:50:34
运行 ID: 33937
//test #include <bits/stdc++.h> #define int long long using namespace std; int n, k, fa[15]; bool nx[100005]; bool b = 0; signed main() { // freopen("tree.in", "r", stdin); // freopen("tree.out", "w", stdout); scanf("%lld %lld", &n, &k); if ((n & 1) == 0 || n == k) { puts("-1"); return 0; } printf("%lld\n", n / 2); for (int i = 0; i < n - 1; i++) { if (!nx[i] && !nx[(i + k) % n]) { nx[i] = 1; printf("%lld %lld\n", i, i + 1); nx[(i + k) % n] = 1; } } return 0; } /* 9 5 0 1 5 6 1 2 6 7 2 3 7 8 3 4 8 0 0 1 1 2 0 2 1 3 0 3 1 4 9 2 (0, 1) (2, 3) (1, 2) (3, 4) (4, 5) (6, 7) (5, 6) () (1, 2) (3, 4) (2, 3) (4, 5) (5, 6) (7, 8) (6, 7) (8, 0) 9 3 (0, 1) (3, 4) (1, 2) (4, 5) (2, 3) (5, 6) (6, 7) (0, 1) (1, 2) (4, 5) (2, 3) (5, 6) (3, 4) (6, 7) (7, 8) (1, 2) */