trang chủ / bài tập / shiftans

Dịch đáp án

Đề bài

Mô tả

Bạn phải làm một bài kiểm tra gồm n câu hỏi trắc nghiệm. Mỗi câu có k phương án và chỉ một phương án đúng. Đáp án đúng của câu thứ ihi. Nếu bạn trả lời câu i bằng đúng hi thì được 1 điểm cho câu đó, ngược lại được 0 điểm.

Bạn dự định điền một bộ đáp án a=[a1,a2,,an] (với 1aik). Tuy nhiên, do một lỗi trong chương trình, các đáp án bị dịch vòng theo chiều kim đồng hồ đúng một vị trí trước khi nộp: đáp án của câu i bị chuyển sang câu imodn+1. Nghĩa là bộ đáp án thực sự được nộp là a=[an,a1,a2,,an1].

Gọi tổng điểm của bộ đáp án gốc a là số câu iai=hi, và tổng điểm của bộ bị dịch a là số câu iai=hi.

Có tất cả kn bộ đáp án khả dĩ. Hãy đếm số bộ đáp án a sao cho tổng điểm của a (sau khi dịch) lớn hơn thực sự tổng điểm của a (ban đầu). In kết quả theo modulo 998244353.

Dữ liệu vào

  • Dòng đầu chứa hai số nguyên nk: số câu hỏi và số phương án mỗi câu.
  • Dòng thứ hai chứa n số nguyên h1,h2,,hn: đáp án đúng của từng câu.

Dữ liệu ra

  • In một số nguyên: số bộ đáp án thỏa mãn điều kiện, theo modulo 998244353.

Ràng buộc

  • 1n2·105
  • 1k109
  • 1hik

Ví dụ

Input Output Giải thích
3 3
1 3 1
9 Các bộ đáp án hợp lệ là [2,1,1], [2,1,2], [2,1,3], [3,1,1], [3,1,2], [3,1,3], [3,2,1], [3,2,2], [3,2,3], tổng cộng 9 bộ.
5 5
1 1 4 2 2
1000 1000 bộ đáp án mà điểm sau khi dịch lớn hơn điểm ban đầu.
6 2
1 1 2 2 1 1
16 Với k=2, có 16 bộ đáp án thỏa mãn.

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.47 awk 1.3.4 gcc 16.2.0 dotnet 10.0.400 g++ 16.2.0 g++-themis 16.2.0 g++17 16.2.0 g++20 16.2.0 g++23 16.2.0 clang++ 22.1.8 dmd 2.113.0 dart 3.13.2 gforth 0.7.3 gfortran 12.2.0 go 1.27.0 groovyc 5.1.1 javac 25.0.4 node 26.8.1 julia 1.12.7 kotlinc 2.4.10 lean 4.33.1 sbcl 2.2.9 lua 5.4.9 nim 2.2.10 fpc 3.2.2 fpc-themis 3.2.2 perl 5.36.0 php 8.5.10 pike 8.0 swipl 9.0.4 pypy3 7.3.23 python3 3.14.7 racket 8.7 ruby 4.0.6 rustc 1.98.0 csc 5.3.0 ctoj-scratch 0.0.1 sed 4.9 swiftc 6.3.3 tclsh 8.6 bun 1.4.0 deno 2.9.6 v 0.5.2 zig 0.16.0