JOI 2014 - Schedule

Xem PDF



Dạng bài
Ngôn ngữ cho phép
Assembly, Awk, C, C#, C++, Clang, Cobol, D, Groovy, Haskell, JS, Java, Kotlin, Lua, Node JS, OCaml, ObjectiveC, PHP, Pascal, Perl, Prolog, Pypy, Pypy 3, Python, Ruby, Rust, Scala, Scratch, Swift
Điểm: 1300 (p) Thời gian: 1.0s Bộ nhớ: 256M Input: bàn phím Output: màn hình

Câu lạc bộ lập trình của trường trung học IOI có ba thành viên là J, O và I. Câu lạc bộ đang lập lịch sinh hoạt cho \(N\) ngày.

Trong mỗi ngày, mỗi thành viên có hai lựa chọn: tham gia hoặc không tham gia. Vì vậy, xét riêng việc tham gia của ba thành viên, có tất cả \(8\) khả năng cho một ngày.

Phòng câu lạc bộ chỉ có một chiếc chìa khóa, ban đầu do J giữ. Vào mỗi ngày sinh hoạt, một trong những thành viên tham gia ngày đó phải mang theo chìa khóa. Sau buổi sinh hoạt, một trong những thành viên đã tham gia sẽ mang chìa khóa về.

Để bảo đảm buổi sinh hoạt diễn ra vào tất cả các ngày đã định, câu lạc bộ chỉ định trước một người phụ trách cho mỗi ngày. Người phụ trách bắt buộc phải tham gia buổi sinh hoạt của ngày đó.

Cho số ngày cần lập lịch và người phụ trách của từng ngày, hãy viết chương trình đếm số lịch tham gia cho phép câu lạc bộ sinh hoạt vào tất cả các ngày, rồi in ra phần dư của số đó khi chia cho \(10007\).

Thành viên mang chìa khóa về sau mỗi buổi có thể là bất kỳ thành viên nào tham gia buổi đó. Vào ngày cuối cùng, ai mang chìa khóa về cũng được. Một lịch được xác định bởi những thành viên tham gia từng ngày.

Dữ liệu vào

Dữ liệu vào gồm \(2\) dòng:

  • Dòng đầu tiên chứa số nguyên \(N\), là số ngày cần lập lịch.
  • Dòng thứ hai chứa một chuỗi gồm \(N\) ký tự. Ký tự thứ \(i\) (\(1 \le i \le N\)) cho biết người phụ trách ngày thứ \(i\): J, O, I lần lượt tương ứng với J, O, I.

Dữ liệu ra

In ra một dòng chứa phần dư của số lịch hợp lệ khi chia cho \(10007\).

Ràng buộc

  • \(2 \le N \le 1000\).
  • Chuỗi có đúng \(N\) ký tự, mỗi ký tự là J, O hoặc I.

Ví dụ

Ví dụ 1

Input
2
OI
Output
7
Giải thích

Cần lập lịch cho \(2\) ngày. Người phụ trách ngày thứ nhất là O, người phụ trách ngày thứ hai là I. Có \(7\) lịch thỏa mãn các điều kiện:

Lịch Ngày thứ nhất Ngày thứ hai
1 J, O O, I
2 J, O J, I
3 J, O J, O, I
4 J, O, I I
5 J, O, I J, I
6 J, O, I O, I
7 J, O, I J, O, I

Trong bảng, J, O, I cho biết các thành viên tham gia vào ngày tương ứng.

Mặc dù O là người phụ trách ngày thứ nhất, J là người giữ chìa khóa ban đầu, nên cả J và O đều phải tham gia ngày thứ nhất.

Người mang chìa khóa về sau ngày thứ nhất phải tham gia ngày thứ hai. Do đó, phải có ít nhất một người tham gia cả hai ngày.

Ví dụ 2

Input
20
JIOIJOIJOJOIIIOJIOII
Output
4976
Giải thích

Có tất cả \(72493594992\) lịch thỏa mãn các điều kiện. Phần dư khi chia số này cho \(10007\)\(4976\), nên in ra \(4976\).

Bình luận

Mới nhất
Tải bình luận...

Không có bình luận nào.

Kỳ thi: