Thứ Hai, 10 tháng 4, 2017

CHUỖI ĐẸP

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: