Блог пользователя Aayuushh19

Автор Aayuushh19, история, 22 месяца назад, По-английски

https://codeforces.com/problemset/problem/1557/A

void solve(){ ll n;cin>>n; vll arr(n); FOR(i,0,n)cin>>arr[i]; double m=*max_element(all(arr)); double sum = accumulate(all(arr),0); sum=sum-m; double avg = sum/(n-1);

cout<<fixed<<setprecision(10)<<m+avg<<endl;

}

  • Проголосовать: нравится
  • -11
  • Проголосовать: не нравится

»
22 месяца назад, # |
  Проголосовать: нравится 0 Проголосовать: не нравится

Make sure everything is double. It might be due to precission errors but the idea is correct

»
22 месяца назад, # |
Rev. 2   Проголосовать: нравится 0 Проголосовать: не нравится

wrong countertest, misread problem

»
22 месяца назад, # |
Rev. 2   Проголосовать: нравится +1 Проголосовать: не нравится

accumulate returns an integer value by default and due to constraints sum will overflow try 0ll instead of 0 in accumulate function and you are good to go.

Your code fails on
5 1000000000 1000000000 1000000000 1000000000 1000000000