โจทย์: กระดาน 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