Túi thẻ

Đề bài

Mô tả

Bạn có một túi chứa n tấm thẻ. Trên thẻ thứ i có ghi số ai.

Bạn chơi trò chơi sau. Mỗi lượt, bạn lấy ngẫu nhiên một tấm thẻ trong túi (các thẻ còn lại được chọn đồng xác suất). Lượt đầu tiên không có gì khác xảy ra — nhưng từ lượt thứ hai trở đi, sau khi rút được thẻ có số x, bạn so sánh nó với thẻ rút ở lượt trước (có số y):

  • Nếu x<y: trò chơi kết thúc, bạn thua.
  • Nếu x=y: trò chơi kết thúc, bạn thắng.
  • Nếu x>y: trò chơi tiếp tục.

Nếu túi rỗng mà chưa có kết quả thắng/thua thì bạn thua. Thẻ rút ra không được trả lại túi.

Hãy tính xác suất thắng. Có thể chứng minh xác suất này có dạng P/Q với P,Q là các số nguyên không âm, Q0PQ. Hãy in ra giá trị P·Q1(mod998244353).

Dữ liệu vào

  • Dòng đầu: số nguyên n — số lượng thẻ trong túi.
  • Dòng thứ hai: n số nguyên a1,a2,,an — số ghi trên các thẻ.

Dữ liệu ra

In ra một số nguyên — xác suất thắng trong trò chơi, lấy theo modulo 998244353.

Ràng buộc

  • 2n5000
  • 1ain

Ví dụ

Input Output Giải thích
5
1 1 4 2 3
299473306 Xác suất thắng là 1/10.
2
2 2
1 Hai thẻ giống nhau, chắc chắn thắng (xác suất 1).
5
4 5 1 3 2
0 Không có hai thẻ trùng giá trị, không thể thắng.
4
1 3 4 3
748683265 Xác suất thắng là 1/4. Một dãy thắng là rút theo thứ tự 1,3,3.

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