Danh sách phát cân bằng
Nộp bài giải
Điểm:
7,00 (OI)
Giới hạn thời gian:
2.0s
Python 3
5.0s
Giới hạn bộ nhớ:
256M
Đầu vào:
stdin
Đầu ra:
stdout
Dạng bài
Ngôn ngữ cho phép
Assembly, C#, C++, D, Dart, Go, Groovy, Java, Javascript, Kotlin, Lua, Nim, ObjC, Pascal, Perl, PHP, Pike, Python, Ruby, Rust, Scratch, Typescript, Zig
Một danh sách phát gồm bài hát được đánh số từ đến . Danh sách phát theo vòng lặp: ngay sau khi bài kết thúc thì bài bắt đầu phát; sau bài là bài .
Mỗi bài có độ "hay" . Bạn chọn một bài để bắt đầu, danh sách sẽ phát từ bài đó theo thứ tự vòng tròn. Tại mọi thời điểm, gọi là độ "hay" lớn nhất trong tất cả các bài đã phát từ lúc bắt đầu. Ngay khi gặp một bài có độ hay nhỏ hơn ngặt (không làm tròn), bạn lập tức tắt nhạc.
Với mỗi bài , hãy tính số bài bạn sẽ nghe nếu bắt đầu từ bài , hoặc xác định bạn sẽ nghe nhạc mãi mãi. Nếu bạn nghe cùng một bài nhiều lần, mỗi lần đều được đếm.
Dữ liệu vào
- Dòng đầu chứa số nguyên () — số bài trong danh sách.
- Dòng thứ hai chứa số nguyên ().
Dữ liệu ra
In ra số , trong đó là số bài bạn nghe khi bắt đầu từ bài , hoặc nếu bạn không bao giờ tắt nhạc.
Ràng buộc
Ví dụ
| Input | Output | Giải thích |
|---|---|---|
| 4 11 5 2 7 |
1 1 3 2 | Bắt đầu từ bài 3: nghe các bài 3, 4, 1 (độ hay lớn nhất tới đó là ), rồi gặp bài 2 có nên dừng — đã nghe bài. |
| 4 3 2 5 3 |
5 4 3 6 | Bắt đầu từ bài 4: nghe các bài 4, 1, 2, 3, 4, 1 (độ hay lớn nhất là ), rồi gặp bài 2 có nên dừng — đã nghe bài. Bài 1 và bài 4 đều được đếm hai lần. |
| 3 4 3 6 |
-1 -1 -1 | Bắt đầu từ bất kỳ bài nào, độ hay lớn nhất sẽ đạt , và không có bài nào nhỏ hơn nên không bao giờ dừng. |
Bình luận