U301582 线段填数问题
题目背景
```cpp
#include
#include
#include
using namespace std;
int main() {
int n;
cin >> n;
if (n < 3) {
cout
题目描述
有一个正 $n$ 边形,每条边上都有 $n$ 个点(包括两端点)。
同时,有 $2n$ 个正整数,依次为 $1, 2, \cdots, 2n-1, 2n$。
要求你将它们按照一定顺序填入点中,填入完毕之后每条边上点的和都相等且最大。
请注意,可能出现无法使每条边的和相等的情况。
------------
假设 $n = 3$ ,则图形如下:

输入格式
一行,一个正整数 $n$ ,含义见题面。
输出格式
输出共两行:
第一行,一个整数 $s$ ,表示每条边最大的和。
第二行,$2n$个正整数,表示填空的结果,用空格隔开。
输出顺序从最大数所在的点开始,顺时针旋转到最大数的旁边一个数。
如果出现无法使每条边的和相等的情况,就只输出 $-1$ 。
说明/提示
【数据范围】
$3 \leq n \leq 10^6$
【样例解释】
样例 $1$ 的填数方法如下:
