Dãy Tăng Giảm
Nộp bài giải
Điểm:
1,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
Tác giả:
Dạng bài
Ngôn ngữ cho phép
C++, Go, Java, Kotlin, Pascal, Python, Scratch
Farmer John có con bò (), được đánh số từ đến , xếp thành một hoán vị của các số từ đến .
Cho một xâu độ dài chỉ gồm các ký tự U (tăng) và D (giảm). Hãy tìm giá trị lớn nhất () sao cho tồn tại một dãy con của (tức là chọn phần tử theo đúng thứ tự trong ) thỏa mãn:
- Với mỗi từ đến : nếu ký tự thứ của xâu là
Uthì , nếu làDthì .
Dữ liệu vào
- Dòng 1: Số nguyên .
- Dòng 2: số nguyên phân biệt — một hoán vị của .
- Dòng 3: Xâu độ dài gồm các ký tự
UvàD.
Dữ liệu ra
Một số nguyên duy nhất — giá trị lớn nhất tìm được.
Ràng buộc
- là hoán vị của
- Xâu có độ dài và chỉ chứa
U,D
Subtask:
- Subtask 1 (9%):
- Subtask 2 (18%):
- Subtask 3 (18%): Xâu gồm các ký tự
Urồi đến các ký tựD(có thể không có phần nào) - Subtask 4 (55%): Không có ràng buộc thêm
Ví dụ
| Input | Output | Giải thích |
|---|---|---|
| 5 1 5 3 4 2 UDUD |
4 | Cả hoán vị thỏa mãn mẫu UDUD: . |
| 5 1 5 3 4 2 UUDD |
3 | Dãy con (chọn phần tử vị trí 1, 3, 4, 5) thỏa mãn UUDD: , cho . |
Ghi chú
Trong ví dụ 2, xâu UUDD có độ dài 4 nhưng không thể đạt (sẽ cần dãy con độ dài 5 thỏa mãn UUDD, nhưng không tồn tại dãy con như vậy trong ).
Bình luận