[Vĩnh Phúc - 23] Lật ký tự


Submit solution

Points: 100
Time limit: 1.0s
Memory limit: 256M

Problem type

Cho xâu S gồm N ký tự '.' và '#' được đánh số từ 1 đến N. Thao tác lật ký tự của xâu được định nghĩa như sau:

  • Chọn số nguyên i (1 <= i <= N).
  • Nếu ký tự thứ i của xâu S là '.' thì nó sẽ được thay thế bằng '#'. Ngược lại, nếu là '#' thì sẽ được thay thế bằng '.'.

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ự '#'. (Điều này đồng nghĩa với việc xâu sau khi biến đổi phải có dạng: một loạt dấu '.' rồi đến một loạt dấu '#', ví dụ: ...###)

Dữ liệu: Vào từ file PCHAR.INP
  • Dòng 1: ghi số nguyên N (1 <= N <= 200.000) là số lượng ký tự trong xâu S.
  • Dòng 2: ghi xâu S gồm N ký tự '.' và '#'.

Subtasks:
  • Subtask 1 (50% số điểm): 1 <= N <= 2.000
  • Subtask 2 (50% số điểm): Không có ràng buộc bổ sung (N <= 200.000).

Kết quả: Ghi ra file PCHAR.OUT

Một số nguyên duy nhất là số thao tác ít nhất cần thực hiện.



Ví dụ:
PCHAR.INP
3
#.#

PCHAR.OUT
1

Giải thích: Lật ký tự '#' đầu tiên để xâu trở thành "..#"

PCHAR.INP
5
#.##.

PCHAR.OUT
2

Giải thích: Lật hai ký tự '.' để trở thành "#####"


Comments

There are no comments at the moment.