Huy đang gặp một vấn
đề khó khăn trong việc xử lý chuỗi. Huy đang muốn chuẩn hóa chuỗi đó về dạng
chuỗi đẹp. Một chuỗi được gọi là "chuỗi đẹp" nếu như tồn tại một vị
trí 𝑝 trong chuỗi sao cho từ
vị trí đầu tiên đến vị trí 𝑝 là chữ cái La-tinh in
hoa, còn từ vị trí 𝑝 + 1 đến 𝑛 là chữ cái La-tinh in thường.
Lưu ý:
Chuỗi mà toàn bộ các ký tự đều in hoa hay in thường cũng được gọi là một chuỗi
đẹp.
Để biến từ một chuỗi 𝑠 thành một chuỗi đẹp, Huy phải sử dụng tiền túi của mình để
chuẩn hóa nó. Một phép biến đổi tác động vào ký tự thứ 𝑖,
sẽ biến ký tự đó từ in hoa thành in thường và ngược lại. Đồng thời Huy sẽ mất một
số tiền không nhỏ là 𝑜rd(𝑠𝑖)
– với 𝑜rd(𝑐) là giá trị mã Ascii của ký tự 𝑐.
Yêu cầu: Hãy giúp Huy biến đổi từ một chuỗi 𝑠 ban đầu sao cho thành một chuỗi đẹp với chi phí nhỏ nhất
có thể nhé!
Dữ liệu: Vào từ file văn bản BEAUTIFUL.INP gồm
một dòng duy nhất là chuỗi 𝑠𝑠
(1 ≤ |𝑠| ≤ 100 000).
Kết quả: Ghi ra file văn bản BEAUTIFUL.OUT một số
nguyên duy nhất là tổng số tiền nhỏ nhất mà Huy cần bỏ ra để biến chuỗi 𝑠𝑠 thành một “chuỗi đẹp”.
Ví dụ:
BEAUTIFUL.INP
|
BEAUTIFUL.OUT
|
bAa
|
65
|
Giải thích: Thay vì
chuyển ký tự 'b' đầu tiên thành 'B' thì mất chi phí là 98 , thì ta sẽ chuyển từ
'A' thành 'a' thì chi phí chỉ mất 65.
Không có nhận xét nào:
Đăng nhận xét