This Python program reads a 2D array and checks whether the sign of each row's elements is sorted in ascending order.
If all rows satisfy this condition, it prints "Yes"; otherwise, it prints "No".
def sign(x: int) -> int:
return -1 if x < 0 else (1 if x > 0 else 0)
def is_sign_sorted(row: list[int]) -> bool:
signs = [sign(x) for x in row]
return signs == sorted(signs)
def check_all_rows(matrix: list[list[int]]) -> str:
for row in matrix:
if not is_sign_sorted(row):
return "No"
return "Yes"
def read_matrix(rows: int, cols: int) -> list[list[int]]:
print(f"Enter elements for a {rows}×{cols} array:")
matrix = []
for i in range(rows):
row = list(map(int, input(f"Row {i+1}: ").strip().split()))
if len(row) != cols:
print("Each row must contain exactly the number of columns.")
exit()
matrix.append(row)
return matrix
# Read dimensions
r = int(input("Number of rows: "))
c = int(input("Number of columns: "))
# Read and check
x = read_matrix(r, c)
result = check_all_rows(x)
print(f"\nCheck result: {result}")
Input:
-5 0 3
-1 1 2
0 0 1
Output:
Check result: Yes