Lật ký tự

Xem dạng PDF

Gửi bài giải

Điểm: 100,00 (OI)
Giới hạn thời gian: 1.0s
Giới hạn bộ nhớ: 256M
Input: stdin
Output: stdout

Tác giả:
Dạng bài
Ngôn ngữ cho phép
C++, Python
Lật ký tự
Mô tả và yêu cầu

Cho xâu 𝑆 gồm 𝑁 kí tự '.' và '#' được đánh số từ 1 đến 𝑁. Thao tác lật kí tự của xâu
được định nghĩa như sau:
 Chọn số nguyên 𝑖(1 ≤ 𝑖 ≤ 𝑁),
 Nếu thứ tự thứ 𝑖 của xâu 𝑆 là '.' Thì nó sẽ được thay thế bằng '#'. Ngược lại,
nếu là '#' thì sẽ được thay thế bằng '. '.
Yêu cầu: Hãy lập trình tính xem cần thực hiện ít nhất bao nhiêu thao tác để trong
xâu không có kí tự '.' nào ở ngay bên phải kí tự '#'.
Dữ liệu: vào từ thiết bị nhập chuẩn:

 Dòng 1: ghi số nguyên 𝑁(1 ≤ 𝑁 ≤ 200.000) là số lượng kí tự trong xâu 𝑆;
 Dòng 2: ghi xâu 𝑆 gồm 𝑁 kí tự '.' và '#'.
Kết quả: ghi ra thiết bị xuất chuẩn chứa một số nguyên duy nhất là số thao tác ít
nhất cần thực hiện để trong xâu 𝑆 không có bất kì kí tự '.' nào ở ngay bên phải kí tự
'#'.

Ví dụ
INPUT                  OUTPUT                         Giải thích

       3                         1                      Lật kí tự '#' đầu tiên để xâu
       #. #                                             trở thành "..#"

       5                         2                      Lật hai ký tự '.' để trở thành
       #. ##.                                           "#####"

       9                         0                      Không cần thực hiện thao tác
                                                        nào

       …  …  …

Subtasks:

                        #     Điểm                 Ràng buộc

                         1    50%               1  ≤  N  ≤  2.000

                         2    50%       Không có ràng buộc bổ sung

Tải PDF gốc


Bình luận

Hãy đọc nội quy trước khi bình luận.


Không có bình luận tại thời điểm này.