मान लीजिए कि हमारे पास n x m आकार का एक मैट्रिक्स है। कोशिकाएं या तो 'W' सफेद या 'B' काली होती हैं। टेबल के अंदर विषम लंबाई के कुछ वर्ग को काले रंग से रंगा गया था। हमें इस वर्ग का केंद्र खोजना होगा।
तो, अगर इनपुट पसंद है
W | डब्ल्यू | बी | बी | बी | डब्ल्यू |
W | डब्ल्यू | बी | बी | बी | डब्ल्यू |
W | डब्ल्यू | बी | बी | बी | डब्ल्यू |
W | डब्ल्यू | डब्ल्यू | डब्ल्यू | डब्ल्यू | डब्ल्यू |
W | डब्ल्यू | डब्ल्यू | डब्ल्यू | डब्ल्यू | डब्ल्यू |
तो आउटपुट (3, 1) होगा।
कदम
इसे हल करने के लिए, हम इन चरणों का पालन करेंगे -
n := row count of matrix m := column count of matrix cnt := 0 X := 0 Y := 0 for initialize i := 0, when i < n, update (increase i by 1), do: for initialize j := 0, when j < m, update (increase j by 1), do: if matrix[i, j] is same as 'B', then: increase cnt by 1 X := X + i Y := Y + j X := X / cnt Y := Y / cnt return (Y, X)
उदाहरण
आइए बेहतर समझ पाने के लिए निम्नलिखित कार्यान्वयन देखें -
#include <bits/stdc++.h> using namespace std; void solve(vector<vector<char>> matrix){ int n = matrix.size(); int m = matrix[0].size(); int cnt = 0, X = 0, Y = 0; for (int i = 0; i < n; i++){ for (int j = 0; j < m; j++) if (matrix[i][j] == 'B') cnt++, X += i, Y += j; } X /= cnt; Y /= cnt; printf("%d, %d\n", Y, X); } int main(){ vector<vector<char>> matrix = { { 'W', 'W', 'B', 'B', 'B', 'W' }, { 'W', 'W', 'B', 'B', 'B', 'W' }, { 'W', 'W', 'B', 'B', 'B', 'W' }, { 'W', 'W', 'W', 'W', 'W', 'W' }, { 'W', 'W', 'W', 'W', 'W', 'W' } }; solve(matrix); }
इनपुट
{ { 'W', 'W', 'B', 'B', 'B', 'W' }, { 'W', 'W', 'B', 'B', 'B', 'W' }, { 'W', 'W', 'B', 'B', 'B', 'W' }, { 'W', 'W', 'W', 'W', 'W', 'W' }, { 'W', 'W', 'W', 'W', 'W', 'W' } }
आउटपुट
3, 1