JOI 2022 - Copy and Paste 3
Xem PDFCông ty JOI nổi tiếng với những "phát minh kỳ lạ". Gần đây, công ty đã phát triển một trình soạn thảo văn bản mang tên "Just Odd Editor".
Trong trình soạn thảo này, ta có thể nhập một xâu ký tự bằng cách thực hiện nhiều lần các thao tác dưới đây. Gọi \(X\) là xâu đang hiển thị trên màn hình và \(Y\) là xâu được lưu trong bộ nhớ tạm. Ban đầu, cả \(X\) và \(Y\) đều là xâu rỗng.
- Thao tác A: Thêm một ký tự vào cuối xâu. Cụ thể, chọn một ký tự \(c\) rồi thay \(X\) bằng \(X+c\).
- Thao tác B: Chọn toàn bộ các ký tự và cắt chúng. Cụ thể, thay \(Y\) bằng \(X\), sau đó đặt \(X\) thành xâu rỗng.
- Thao tác C: Dán xâu trong bộ nhớ tạm vào cuối xâu. Cụ thể, thay \(X\) bằng \(X+Y\).
Với các ký tự hoặc xâu \(x,y\), ký hiệu \(x+y\) là xâu thu được bằng cách nối \(x\) rồi đến \(y\). Thực hiện một lần thao tác A, B, C lần lượt tốn \(A\), \(B\), \(C\) đơn vị thời gian.
Bạn đã cài đặt Just Odd Editor và muốn nhập xâu \(S\) có độ dài \(N\) nhanh nhất có thể. Hãy thực hiện các thao tác sao cho xâu trên màn hình trở thành \(S\) trong thời gian ngắn nhất.
Viết chương trình nhận độ dài \(N\), xâu \(S\) và thời gian thực hiện mỗi thao tác, rồi tính thời gian ít nhất cần để nhập xâu \(S\).
Dữ liệu vào
Đọc từ đầu vào chuẩn theo định dạng sau:
N
S
A
B
C
Dữ liệu ra
Ghi một dòng ra đầu ra chuẩn, chứa thời gian ít nhất cần để nhập xâu \(S\).
Ràng buộc
- \(1\le N\le 2\,500\).
- \(S\) là xâu độ dài \(N\), chỉ gồm các chữ cái tiếng Anh thường từ
ađếnz. - \(1\le A\le 1\,000\,000\,000=10^9\).
- \(1\le B\le 1\,000\,000\,000=10^9\).
- \(1\le C\le 1\,000\,000\,000=10^9\).
- \(N,A,B,C\) đều là số nguyên.
Phân nhóm
- \(1\) điểm: \(N=3\).
- \(5\) điểm: Mọi ký tự của \(S\) đều là
a. - \(14\) điểm: \(N\le 30\).
- \(10\) điểm: \(N\le 200\).
- \(32\) điểm: \(N\le 1\,000\).
- \(38\) điểm: Không có ràng buộc bổ sung.
Ví dụ
Ví dụ 1
Input
11
mississippi
10
5
2
Output
88
Giải thích
Có thể nhập mississippi trong \(88\) đơn vị thời gian bằng các thao tác sau. Đây là thời gian ít nhất nên in 88.
| Thứ tự | Thao tác | Giải thích | \(X\) | \(Y\) | Thời gian | Tổng thời gian |
|---|---|---|---|---|---|---|
| - | - | - | "" |
"" |
- | 0 |
| 1 | A | Thêm ký tự vào cuối | "s" |
"" |
10 | 10 |
| 2 | B | Chọn tất cả và cắt | "" |
"s" |
5 | 15 |
| 3 | C | Dán vào cuối | "s" |
"s" |
2 | 17 |
| 4 | C | Dán vào cuối | "ss" |
"s" |
2 | 19 |
| 5 | A | Thêm ký tự vào cuối | "ssi" |
"s" |
10 | 29 |
| 6 | B | Chọn tất cả và cắt | "" |
"ssi" |
5 | 34 |
| 7 | A | Thêm ký tự vào cuối | "m" |
"ssi" |
10 | 44 |
| 8 | A | Thêm ký tự vào cuối | "mi" |
"ssi" |
10 | 54 |
| 9 | C | Dán vào cuối | "missi" |
"ssi" |
2 | 56 |
| 10 | C | Dán vào cuối | "mississi" |
"ssi" |
2 | 58 |
| 11 | A | Thêm ký tự vào cuối | "mississip" |
"ssi" |
10 | 68 |
| 12 | A | Thêm ký tự vào cuối | "mississipp" |
"ssi" |
10 | 78 |
| 13 | A | Thêm ký tự vào cuối | "mississippi" |
"ssi" |
10 | 88 |
Ví dụ này thỏa mãn ràng buộc của các nhóm \(3,4,5,6\).
Ví dụ 2
Input
16
aaaaaaaaaaaaaaaa
1
1
1
Output
9
Giải thích
Có thể nhập aaaaaaaaaaaaaaaa trong \(9\) đơn vị thời gian bằng các thao tác sau. Đây là thời gian ít nhất nên in 9.
| Thứ tự | Thao tác | Giải thích | \(X\) | \(Y\) | Thời gian | Tổng thời gian |
|---|---|---|---|---|---|---|
| - | - | - | "" |
"" |
- | 0 |
| 1 | A | Thêm ký tự vào cuối | "a" |
"" |
1 | 1 |
| 2 | A | Thêm ký tự vào cuối | "aa" |
"" |
1 | 2 |
| 3 | A | Thêm ký tự vào cuối | "aaa" |
"" |
1 | 3 |
| 4 | A | Thêm ký tự vào cuối | "aaaa" |
"" |
1 | 4 |
| 5 | B | Chọn tất cả và cắt | "" |
"aaaa" |
1 | 5 |
| 6 | C | Dán vào cuối | "aaaa" |
"aaaa" |
1 | 6 |
| 7 | C | Dán vào cuối | "aaaaaaaa" |
"aaaa" |
1 | 7 |
| 8 | C | Dán vào cuối | "aaaaaaaaaaaa" |
"aaaa" |
1 | 8 |
| 9 | C | Dán vào cuối | "aaaaaaaaaaaaaaaa" |
"aaaa" |
1 | 9 |
Ví dụ này thỏa mãn ràng buộc của các nhóm \(2,3,4,5,6\).
Ví dụ 3
Input
18
aababbbababbbaabbb
1000000000
100000
10000000
Output
8060200000
Giải thích
Ví dụ này thỏa mãn ràng buộc của các nhóm \(3,4,5,6\).
Nguồn
JOI 2021/2022 Spring Training Camp, Contest 2, do Japanese Committee for the International Olympiad in Informatics (JCIOI) công bố. Bản dịch tiếng Việt được chuyển ngữ từ đề chính thức và phát hành theo giấy phép CC BY-SA 4.0.
Kỳ thi:
- JOI 2022 - Tuyển chọn mùa xuân - Ngày 2 (21 Tháng ba, 2022)
Bình luận