CF901E Cyclic Cipher

题目描述

![](https://cdn.luogu.com.cn/upload/vjudge_pic/CF901E/09d58666f469d1212864032a997630308f9a2d24.png) Senor Vorpal Kickass'o 发明了一种创新的长度为 $n$ 的整数序列加密方法。为了加密一个序列,需要选择一个作为密钥的秘密序列 ![](https://cdn.luogu.com.cn/upload/vjudge_pic/CF901E/9d7f596ac3bfcb4de56caec3ed98f54b8c38886c.png)。 Vorpal 要求很高,因此密钥 $b_i$ 必须满足其所有轮换(循环移位)序列线性无关,即不存在一组不全为零的系数 $x_0, x_1, \ldots, x_{n-1}$,使得对所有 $k$ 都有 ![](https://cdn.luogu.com.cn/upload/vjudge_pic/CF901E/14fc308524a42e2bfab7fa5bbb60c1743e7911b3.png) 成立。 之后,对于一个序列 ![](https://cdn.luogu.com.cn/upload/vjudge_pic/CF901E/5656a7a50865b0a2e60963f7abba52e4c4e82222.png),你需要构造如下密文序列: ![](https://cdn.luogu.com.cn/upload/vjudge_pic/CF901E/d8113c9899e75c215e4f30da73d960636a7306eb.png) 换句话说,你要计算 $a_i$ 与 $b_i$ 每一个循环移位之间的平方差,并依次组成结果序列,这就是 Kickass 密文。该密文算法仍在开发阶段,因此 Vorpal 希望能够解开密文。现在,给定序列 $c_i$ 和密钥序列 $b_i$,请你找出所有满足加密结果为 $c_i$ 的原序列 $a_i$。

输入格式

第一行包含一个整数 $n$($1 \le n \le 100$)。 第二行包含 $n$ 个整数 $b_0, b_1, \ldots, b_{n-1}$($|b_i| \le 1000$)。 第三行包含 $n$ 个整数 $c_0, c_1, \ldots, c_{n-1}$($|c_i| \le 10^9$)。 保证 $b_i$ 的所有循环移位序列均线性无关。

输出格式

第一行输出一个整数 $k$,表示满足条件的序列 $a_i$ 的个数,使得以 $b_i$ 为密钥加密后得到序列 $c_i$。 接下来每行输出一个长度为 $n$ 的序列 $a_0, a_1, \ldots, a_{n-1}$,共输出 $k$ 行。答案按字典序升序输出。 注意,$k$ 可能为 $0$。

说明/提示

由 ChatGPT 5 翻译