Đố vui

Đề bài

Mô tả

Manao tham gia một bài kiểm tra gồm n câu hỏi được sắp thứ tự. Mỗi câu trả lời đúng cộng cho điểm số một điểm. Trò chơi còn có một bộ đếm số câu trả lời đúng liên tiếp: khi trả lời đúng, bộ đếm tăng thêm 1; khi trả lời sai, bộ đếm được đặt lại về 0. Nếu sau một câu trả lời, bộ đếm chạm đến giá trị k thì bộ đếm được đặt lại về 0 điểm số hiện tại của người chơi được nhân đôi. Lưu ý: khi câu đúng đó đưa bộ đếm lên k, ta cộng 1 điểm trước, rồi mới nhân đôi tổng điểm.

Ban đầu điểm số và bộ đếm đều bằng 0.

Manao nhớ mình đã trả lời đúng đúng m câu trong tổng số n câu, nhưng không nhớ thứ tự. Hãy tính điểm số nhỏ nhất có thể mà Manao đạt được, rồi in ra phần dư của giá trị đó khi chia cho 109+9.

Lưu ý rằng đề bài yêu cầu tối thiểu hoá điểm thật (một số nguyên có thể rất lớn), rồi mới lấy phần dư — không phải tối thiểu hoá phần dư.

Dữ liệu vào

Một dòng chứa ba số nguyên n, m, k.

Dữ liệu ra

Một số nguyên duy nhất: phần dư của điểm số nhỏ nhất khi chia cho 109+9.

Ràng buộc

  • 2kn109
  • 0mn

Ví dụ

Input Output Giải thích
5 3 2 3 Trả lời đúng các câu 1,3,5 và sai các câu 2,4. Bộ đếm không bao giờ đạt 2, điểm số là 3.
5 4 2 6 Trả lời sai câu 4: sau câu 2, điểm số nhân đôi từ 24; sau đó cộng thêm hai điểm nữa cho câu 35. Tổng là 6.

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 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