A1 = ?
A1 = ?
Time Limit: 5000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)
Total Submission(s): 5116 Accepted Submission(s): 3265
Problem Description
Ai=(Ai-1+Ai+1)/2-Ci(i=1,2,3,.....n).A 0,An+1,C 1,C 2,.....Cn.を与えたらA 1=?
Input
入力には、複数のテストインスタンスが含まれます.各例について、まず正の整数n、(n<=3000)である.次に2つの数a 0,an+1.次のn行は行ごとに1つの数ci(i=1,.....n)を有する.入力はファイルの終端で終わります.
Output
各試験例について、求めるa 1を1行出力(小数2桁保持).
Sample Input
Sample Output
Time Limit: 5000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)
Total Submission(s): 5116 Accepted Submission(s): 3265
Problem Description
Ai=(Ai-1+Ai+1)/2-Ci(i=1,2,3,.....n).A 0,An+1,C 1,C 2,.....Cn.を与えたらA 1=?
Input
入力には、複数のテストインスタンスが含まれます.各例について、まず正の整数n、(n<=3000)である.次に2つの数a 0,an+1.次のn行は行ごとに1つの数ci(i=1,.....n)を有する.入力はファイルの終端で終わります.
Output
各試験例について、求めるa 1を1行出力(小数2桁保持).
Sample Input
1 50.00 25.00 10.00 2 50.00 25.00 10.00 20.00
Sample Output
27.50 15.00
:
, :
An = (1/2)An-1 + (1/2)An+1 - Cn
An-1 = (2/3)An-2 + (1/3)An+1 - (2/3)Cn - (4/3)Cn-1
An-2 = (3/4)An-3 + (1/4)An+1 - (1/2)Cn - Cn-1 - (3/2)Cn-2
An-3 = (4/5)An-4 + (1/5)An+1 - (2/5)Cn - (4/5)Cn-1 - (6/5)Cn-2 - (8/5)Cn-3
......
( )
:
A1 = (n/(n+1))A0 + (1/(n+1))An+1 - (2/(n+1))Cn - (4/(n+1))Cn-1 - ... -(2n/(n+1))C1
= [ nA0 + An+1 - 2(Cn + 2Cn-1 + 3Cn-2 + ... + nC1) ]/(n+1)
:
#include <stdio.h> #include <stdlib.h> #define MaxSize 3001 int main() { int i,n; double a1,a0,end; double c[MaxSize]; while (scanf("%d",&n)!=EOF) { scanf("%lf%lf",&a0,&end); for(i=0;i<n;i++) scanf("%lf",&c[i]); a1 = n* a0 + end ; for(i=0;i<n;i++) a1-=2*(i+1)*c[n-1-i]; a1 =a1/(1 + n); printf ("%.2lf
",a1); } system("pause"); return 0 ; }