CF1028E.Restore Array
提高+/省选-
通过率:0%
时间限制:2.00s
内存限制:256MB
AC君温馨提醒
该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。
题目描述
While discussing a proper problem A for a Codeforces Round, Kostya created a cyclic array of positive integers a1,a2,…,an. Since the talk was long and not promising, Kostya created a new cyclic array b1,b2,…,bn so that bi=(aimodai+1), where we take an+1=a1. Here mod is the modulo operation. When the talk became interesting, Kostya completely forgot how array a had looked like. Suddenly, he thought that restoring array a from array b would be an interesting problem (unfortunately, not A).
在讨论 Codeforces Round 的一道合适的题目 A 时,科斯佳构造了一个由正整数组成的循环数组 a1,a2,…,an。由于讨论冗长且毫无进展,科斯佳又构造了一个新的循环数组 b1,b2,…,bn,使得 bi=(aimodai+1),其中约定 an+1=a1。此处 mod 表示取模运算。当讨论变得有趣起来时,科斯佳完全忘记了原数组 a 的样子。突然间,他想到:由数组 b 恢复出数组 a 将会是一道有趣的题目(遗憾的是,这道题并不适合作为题目 A)。
输入格式
The first line contains a single integer n (2≤n≤140582) — the length of the array a.
The second line contains n integers b1,b2,…,bn (0≤bi≤187126).
第一行包含一个整数 n(2≤n≤140582)—— 数组 a 的长度。
第二行包含 n 个整数 b1,b2,…,bn(0≤bi≤187126)。
输出格式
If it is possible to restore some array a of length n so that bi=aimoda(imodn)+1 holds for all i=1,2,…,n, print «YES» in the first line and the integers a1,a2,…,an in the second line. All ai should satisfy 1≤ai≤1018. We can show that if an answer exists, then an answer with such constraint exists as well.
It it impossible to restore any valid a, print «NO» in one line.
You can print each letter in any case (upper or lower).
如果可以恢复某个长度为 n 的数组 a,使得对所有 i=1,2,…,n 均满足 bi=aimoda(imodn)+1,则在第一行输出 «YES»,并在第二行输出整数 a1,a2,…,an。所有 ai 需满足 1≤ai≤1018。我们可以证明:若解存在,则必存在满足该约束条件的解。
若无法恢复任何合法的 a,则在一行中输出 «NO»。
你可以以任意大小写(大写或小写)输出每个字母。
输入输出样例
输入#1
4 1 3 1 0
输出#1
YES 1 3 5 2
输入#2
2 4 4
输出#2
NO
说明/提示
In the first example:
- 1mod3=1
- 3mod5=3
- 5mod2=1
- 2mod1=0
在第一个例子中:
- 1mod3=1
- 3mod5=3
- 5mod2=1
- 2mod1=0
输入解题思路,AI测评打分。不知道怎么写?