Hướng dẫn giải của Chơi cờ vua (Đề HSG Quảng Ninh 2021)


Chỉ dùng lời giải này khi không có ý tưởng, và đừng copy-paste code từ lời giải này. Hãy tôn trọng người ra đề và người viết lời giải.
Nộp một lời giải chính thức trước khi tự giải là một hành động có thể bị ban.

Hướng dẫn giải

Cho xâu s gồm n kí tự 'A' và 'B', mỗi kí tự là kết quả một ván cờ. Đếm số ván An thắng và số ván Bình thắng, rồi so sánh hai số đó.

Cách làm

Đầu tiên đọc n và xâu s.

Duyệt từng kí tự của xâu. Nếu kí tự là 'A' thì tăng biến dem_an lên 1, ngược lại tăng biến dem_binh lên 1.

Sau khi duyệt xong, so sánh hai biến đếm. Nếu dem_an lớn hơn thì in ">", nhỏ hơn thì in "<", bằng nhau thì in "=".

Bài này chạy trong thời gian O(n) nên đủ nhanh với n đến 10^5.

#include <bits/stdc++.h>
using namespace std;

int main() {
    freopen("che.inp", "r", stdin);
    freopen("che.out", "w", stdout);
    int n;
    cin >> n;
    string s;
    cin >> s;
    // Dem so van An thang (ky tu 'A') va so van Binh thang (ky tu 'B')
    int dem_an = 0;
    int dem_binh = 0;
    for (int i = 0; i < n; i++) {
        if (s[i] == 'A') {
            dem_an++;
        } else {
            dem_binh++;
        }
    }
    // So sanh hai so dem roi ghi ket qua
    if (dem_an > dem_binh) {
        cout << ">" << "\n";
    } else if (dem_an < dem_binh) {
        cout << "<" << "\n";
    } else {
        cout << "=" << "\n";
    }
    return 0;
}

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.