Chơi Osu!

Đề bài

Mô tả

Bạn đang chơi một trò chơi gồm n lần bấm phím. Mỗi lần bấm có hai kết quả: đúng hoặc hỏng. Ký hiệu lần bấm đúng là "O" và lần bấm hỏng là "X", thì cả lượt chơi được mã hoá thành một dãy n ký tự gồm "O" và "X".

Điểm của lượt chơi được tính như sau: với mỗi khối "O" liên tiếp cực đại, cộng vào điểm số bình phương độ dài của khối đó (số ký tự "O" trong khối). Ví dụ, nếu lượt chơi được mã hoá là "OOXOOOXXOO" thì có ba khối "O" liên tiếp cực đại là "OO", "OOO", "OO", nên điểm số là 22+32+22=17. Nếu không có lần bấm đúng nào thì điểm số bằng 0.

Bạn biết rằng xác suất bấm đúng ở lần bấm thứ ipi. Nói cách khác, ký tự thứ i trong dãy là "O" với xác suất pi và là "X" với xác suất 1pi, độc lập với các lần bấm khác. Hãy tính kỳ vọng điểm số của lượt chơi.

Dữ liệu vào

  • Dòng đầu chứa số nguyên n, số lần bấm.
  • Dòng thứ hai chứa n số thực p1,p2,,pn cách nhau bởi dấu cách. Mỗi pi có tối đa sáu chữ số sau dấu chấm thập phân.

Dữ liệu ra

In ra một số thực duy nhất, kỳ vọng điểm số của lượt chơi. Đáp án được coi là đúng nếu sai số tuyệt đối hoặc tương đối không vượt quá 106.

Ràng buộc

  • 1n105
  • 0pi1

Ví dụ

Input Output Giải thích
3
0.5 0.5 0.5
2.750000000000000 8 kết quả có thể, mỗi kết quả xác suất 0.125. Điểm của chúng lần lượt là: OOO 9, OOX 4, OXO 2, OXX 1, XOO 4, XOX 1, XXO 1, XXX 0. Kỳ vọng =(9+4+2+1+4+1+1+0)/8=2.75.
4
0.7 0.2 0.1 0.9
2.489200000000000 Kỳ vọng điểm số tính theo công thức tuyến tính trên từng vị trí.
5
1 1 1 1 1
25.000000000000000 Chắc chắn toàn "O", một khối duy nhất độ dài 5 nên điểm là 52=25.

Bình luận

Không có bình luận tại thời điểm này.

gnatmake 12.2.0 a68g 3.1.2 nasm 2.16.1 as_x64 2.46 awk 1.3.4 gcc 16.1.0 csc 6.12.0.200 g++ 16.1.0 g++-themis 16.1.0 g++17 16.1.0 g++20 16.1.0 g++23 16.1.0 clang++ 22.1.6 dmd 2.112.0 dart 3.12.1 gforth 0.7.3 gfortran 12.2.0 go 1.26.3 groovyc 5.0.6 javac 25.0.3 node 26.2.0 kotlinc 2.3.21 sbcl 2.2.9 lua 5.4.8 nim 2.2.10 fpc 3.2.2 fpc-themis 3.2.2 perl 5.36.0 php 8.5.6 pike 8.0 pypy3 7.3.23 python3 3.14.5 racket 8.7 ruby 4.0.5 rustc 1.96.0 csc 5.3.0 ctoj-scratch 0.0.1 sed 4.9 tclsh 8.6 bun 1.3.14 deno 2.8.1 v 0.5.1 zig 0.16.0