CF1141C Polycarp Restores Permutation

题目描述

一个整数数组 $p_1, p_2, \dots, p_n$ 被称为一个排列,如果它恰好包含 $1$ 到 $n$ 的每个数字各一次。例如,以下数组是排列:$[3, 1, 2]$、$[1]$、$[1, 2, 3, 4, 5]$ 和 $[4, 3, 1, 2]$。以下数组不是排列:$[2]$、$[1, 1]$、$[2, 3, 4]$。 Polycarp 发明了一个非常酷的长度为 $n$ 的排列 $p_1, p_2, \dots, p_n$。令人遗憾的是,他忘记了这个排列。他只记得长度为 $n-1$ 的数组 $q_1, q_2, \dots, q_{n-1}$,其中 $q_i = p_{i+1} - p_i$。 给定 $n$ 和 $q = q_1, q_2, \dots, q_{n-1}$,请帮助 Polycarp 恢复他发明的排列。

输入格式

第一行包含一个整数 $n$($2 \le n \le 2\cdot10^5$)——需要恢复的排列的长度。 第二行包含 $n-1$ 个整数 $q_1, q_2, \dots, q_{n-1}$($-n < q_i < n$)。

输出格式

如果不存在与给定数组 $q$ 对应的长度为 $n$ 的排列,输出整数 $-1$。否则,如果存在,输出 $p_1, p_2, \dots, p_n$。如果有多个解,输出任意一个即可。

说明/提示

由 ChatGPT 4.1 翻译