atcoder ABC 154D問題が解けません。
https://atcoder.jp/contests/abc154/tasks/abc154_d
なぜ間違えた答えになるのかわからないので、教えてくれるとうれしいです。
c++
1#include<iostream> 2#include<algorithm> 3#include<vector> 4#define rep(i, n) for (int i=0; i<(n); i++) 5using namespace std; 6 7int main(){ 8 int K, N; cin >> N >> K; 9 double p[N], tot=0, ans; 10 rep(i, N) cin >> p[i]; 11 rep(i, K){ 12 tot += (p[i]+1)/2; 13 } 14 ans = tot;; 15 for(int i=1; i<N-K+1; i++){ 16 tot += (p[i+K-1]+1)/2 - (p[i-1]+1)/2; 17 if(ans < tot) ans = tot; 18 } 19 //rep(i, N-K+1) cout << sum[i] << " "; 20 //cout << endl; 21 cout << ans << endl; 22}
端から順にひとつずつ加減算しているので誤差蓄積しているのでは?
…と思いましたが期待値は0.5刻みなので誤差は出なさそうですね
回答3件
あなたの回答
tips
プレビュー