JZOJ__Day 6:【普及模拟】神奇的项链(fett)
題目描述
從前有一條神奇的項鏈,為什么說它神奇呢?因為它有兩個性質:
1. 神奇的項鏈可以拉成一條線,線上依次是N 個珠子,每個珠子有一個能量值Ei;
2. 除了第一個和最后一個珠子,其他珠子都滿足Ei=(Ei-1+Ei+1)/2+Di。
由于這條項鏈很長,我們只能知道其兩端珠子的能量值。并且我們知道每個珠子的Di是多少。請聰明的你求出這N 個珠子的能量值分別是多少。
輸入
第一行三個整數N、E1、EN,表示珠子個數N,第一個珠子和第N 個珠子的能量值。
第二行N-2 個整數,表示第2 個珠子到第N-1 個珠子的Di。
輸出
輸出僅一行,N 個整數,表示1 到N 個這N 個珠子各自的能量值Ei。
請放心,數據保證對于任意珠子滿足(Ei-1+Ei+1)Mod 2=0
樣例輸入
Sample Input 1:
4 1 4
0 0
Sample Input 2:
10 1 22
1 2 -3 5 1 4 2 -1
樣例輸出
Sample Output 1:
1 2 3 4
Sample Output 2:
1 14 25 32 45 48 49 42 31 22
數據范圍限制
40%的數據 1< N <=100。
70%的數據 1< N <=5,000,所有數據(包括計算中的)不超過10^9。
100%的數據 1< N <=500,000,|E1|、|EN|<=10^14,|Di|<=10^4。
程序:
var e,a,d:array[0..500000]of int64; i,n:longint; beginassign(input,'fett.in');reset(input);assign(output,'fett.out');rewrite(output);readln(n,e[1],e[n]);for i:=2 to n-1 doread(d[i]);a[2]:=0;a[3]:=(a[2]-d[2])*2-e[1];for i:=4 to n doa[i]:=(a[i-1]-d[i-1])*2-a[i-2];e[2]:=(e[n]-a[n]) div (n-1);for i:=3 to n doe[i]:=(e[i-1]-d[i-1])*2-e[i-2];for i:=1 to n dowrite(e[i],' ');close(input);close(output); end.轉載于:https://www.cnblogs.com/YYC-0304/p/9500087.html
總結
以上是生活随笔為你收集整理的JZOJ__Day 6:【普及模拟】神奇的项链(fett)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: JZOJ__Day 6:【普及模拟】团队
- 下一篇: JZOJ__Day 7:【普及模拟】蚂蚁