首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> C語言 >> C++ >> 關於C++

Codeforces Round #294 Div.2 A:棋子權重比較判斷勝負

     編輯:關於C++

題目大意

8×8 棋盤,大寫字母表白棋,小寫表黑棋。棋子權重:后 9、車 5、象 3、馬 3、兵 1、王不計。統計雙方總權重,輸出 White/Black/Draw。

代碼實現

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

int val(char c) {
    c = toupper(c);
    if (c == 'Q') return 9;
    if (c == 'R') return 5;
    if (c == 'B' || c == 'N') return 3;
    if (c == 'P') return 1;
    return 0;
}

int main() {
    ios::sync_with_stdio(false); cin.tie(0);
    int white = 0, black = 0;
    for (int i = 0; i < 8; ++i) {
        string row; cin >> row;
        for (char c : row) {
            if (c == '.') continue;
            if (isupper(c)) white += val(c);
            else black += val(c);
        }
    }
    if (white == black) cout << "Draw\n";
    else if (white > black) cout << "White\n";
    else cout << "Black\n";
    return 0;
}

複雜度

  • 時間:O(64) = O(1)。
  • 空間:O(1)。

注意

  • 馬(Knight)字母為 'N',不要誤讀為 'K'(王)。
  • 王(King)不計權重,直接忽略。
  • 輸入可能非合法棋局,但不影響計算。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved