HOUSE - Sơn nhà

Xem dạng PDF

Gửi bài giải

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

Tác giả:
Dạng bài
Ngôn ngữ cho phép
C, C#, C++, Go, Java, Pascal, Perl, PHP, Python, Ruby, Rust, Scratch, Swift

Trên một con đường có ~n~ tòa nhà. Mỗi tòa nhà được sơn bằng một màu Đỏ, Vàng, Xanh, hoặc Tím. Người ta muốn sơn lại một số tòa nhà (bằng một trong các màu Đỏ, Vàng, Xanh, Tím) sao cho không có hai tòa nhà liên tiếp có cùng màu sơn. Tìm số nhà cần sơn lại ít nhất.

Input

  • Dòng đầu tiên chứa số nguyên dương ~n\ (1 ≤ n ≤ 2500)~;
  • Dòng tiếp theo chứa một xâu kí tự có độ dài ~n~, mỗi kí tự đại diện cho một tòa nhà. Mỗi kí tự có thể là ~D, V, X~, hoặc ~T~, lần lượt đại diện cho một ngôi nhà được sơn màu Đỏ, Vàng, Xanh, hoặc Tím.

Output

  • In ra số lượng nhà cần sơn lại ít nhất.

Sample

Input #1
2
TX
Output #1
0
Input #2
3
TXV
Output #2
0
Input #3
14
VVXDDTXVTXDVXV
Output #3
2
Input #4
17
DDTVVTDVVVTVVTDVV
Output #4
5

Problem source: Kc97ble - Free Contest


Bình luận

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



  • 1
    gtmailong  đã bình luận lúc 28, Tháng 4, 2024, 0:32

    full ac

    #include <iostream>
    #include <algorithm>
    #include <cstring>
    
    using namespace std;
    
    int main(){
        int n,dem =0;
        string s;
        cin >> n >> s;
        for (int i = 1; i < n; i++){
            if (s[i] == s[i-1]){
                s[i] = '0';
                dem++;
            }
        }
        cout << dem;
        return 0;
    }