मान लीजिए हमारे पास n x m आकार का एक मैट्रिक्स है। सेल या तो 'W' (सफेद) या 'B' (काला) हैं। टेबल के अंदर विषम लंबाई का कोई वर्ग काला रंगा गया था। हमें इस वर्ग का केंद्र ढूंढना है।
उदाहरण के लिए, यदि इनपुट इस तरह है:
| 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) होगा।
चरण
इसे हल करने के लिए, हम निम्नलिखित चरणों का पालन करेंगे:
n := मैट्रिक्स की पंक्ति संख्या m := मैट्रिक्स की स्तंभ संख्या 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)
उदाहरण
बेहतर समझ के लिए निम्नलिखित कार्यान्वयन देखें:
#includeusing namespace std; void solve(vector > 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 > 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