Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> C++

โค้ด C++ หาคะแนนชนะบนกระดานสี่เหลี่ยม

โจทย์: กระดาน n×n มีตัวเลข ช่องชนะ (winning square) คือช่องที่ผลรวมคอลัมน์ > ผลรวมแถว นับจำนวนช่องชนะ

Input: เมทริกซ์ 4x4 → Output: 6

ขั้นตอนแก้

t := 0
n := size of M
for i := 0 to n-1:
    for j := 0 to n-1:
        s := sum of row i
        l := sum of column j
        if l > s: t++
return t

ตัวอย่างโค้ด

#include <bits/stdc++.h>
using namespace std;
int solve(vector<vector<int>> M) {
    int t = 0, n = M.size();
    for (int i = 0; i <= n-1; i++)
        for (int j = 0; j <= n-1; j++) {
            int s = 0, l = 0;
            for (int k = 0; k <= n-1; k++) {
                s += M[i][k];
                l += M[k][j];
            }
            if (l > s) t++;
        }
    return t;
}
int main() {
    vector<vector<int>> matrix = {{5,7,8,4},{9,5,3,2},{1,6,6,4},{9,5,7,3}};
    cout << solve(matrix) << endl;
}

Input

{{5,7,8,4},{9,5,3,2},{1,6,6,4},{9,5,7,3}}

Output

6