結果
問題 |
No.731 等差数列がだいすき
|
ユーザー |
![]() |
提出日時 | 2025-02-20 01:25:47 |
言語 | PyPy3 (7.3.15) |
結果 |
WA
|
実行時間 | - |
コード長 | 658 bytes |
コンパイル時間 | 290 ms |
コンパイル使用メモリ | 82,160 KB |
実行使用メモリ | 76,420 KB |
最終ジャッジ日時 | 2025-02-20 01:25:50 |
合計ジャッジ時間 | 2,973 ms |
ジャッジサーバーID (参考情報) |
judge3 / judge5 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 15 WA * 3 |
ソースコード
N=int(input()) A=list(map(int,input().split())) level=sum(A)/N # (N+1)/2 項目がlevel # つまり、初項をxとすると公差は、(level-x)/((N+1)/2-1) MIN=-10**15 MAX=10**15 for i in range(1000): mid1=(MIN+(MAX-MIN)/3) mid2=(MIN+(MAX-MIN)/3*2) sa1=(level-mid1)/((N+1)/2-1) sa2=(level-mid2)/((N+1)/2-1) score1=0 score2=0 for i in range(N): score1+=(A[i]-(mid1+i*sa1))**2 score2+=(A[i]-(mid2+i*sa2))**2 if score1<score2: MAX=mid2 else: MIN=mid1 ANS=(MAX+MIN)/2 sa=(level-ANS)/((N+1)/2-1) score=0 for i in range(N): score+=(A[i]-(ANS+i*sa))**2 print(ANS,sa) print(score)