মান लीজিয়ে একটি n x m আকারের ম্যাট্রিক্স আছে। প্রতিটি সেলে 0 থেকে 9 পর্যন্ত একটি মান থাকবে। একটি পতাকা স্ট্রিপড হওয়া উচিত: পতাকার প্রতিটি অনুভূমিক সারি একই রঙের বর্গ ধারণ করবে, এবং আশেপাশের অনুভূমিক সারিগুলোর রঙ ভিন্ন হবে। আমাদের দেওয়া ম্যাট্রিক্সটি বৈধ পতাকা কিনা তা যাচাই করতে হবে।
উদাহরণ
ইনপুট যদি নিচের টেবিলের মতো হয়:
| 0 | 0 | 0 |
| 1 | 1 | 1 |
| 3 | 3 | 3 |
তবে এটি একটি বৈধ পতাকা, কারণ প্রতিটি সারির সব উপাদান একই এবং পরপর দুটি সারির মান ভিন্ন।
সমাধানের ধাপসমূহ
n := ম্যাট্রিক্সের সারির সংখ্যা
m := ম্যাট্রিক্সের কলামের সংখ্যা
l := 'm'
res := 1
for i := 0 to n-1:
f := matrix[i][0]
for j := 0 to m-1:
if matrix[i][j] != f:
res := 0
if l == f:
res := 0
l := f
return (res != 0)
সি++ কোড উদাহরণ
#include <bits/stdc++.h>
using namespace std;
bool solve(vector<vector<int>> matrix) {
int n = matrix.size();
int m = matrix[0].size();
char l = 'm';
bool res = true;
for (int i = 0; i < n; i++) {
char f = matrix[i][0];
for (int j = 0; j < m; j++) {
if (matrix[i][j] != f)
res = false;
}
if (l == f)
res = false;
l = f;
}
return res;
}
int main() {
vector<vector<int>> matrix = { {0, 0, 0}, {1, 1, 1}, {3, 3, 3} };
cout << solve(matrix) << endl;
}
ইনপুট
{ { 0, 0, 0 }, { 1, 1, 1 }, { 3, 3, 3 } }
আউটপুট
1