C++ Максимум
Найдите индексы первого вхождения максимального элемента в двумерном массиве.
Входные данные
Программа получает на вход размеры массива n≤10 и m≤10, затем n строк по m целых чисел, не превосходящих по модулю 231.
Выходные данные
Выведите два числа: номер строки и номер столбца, в которых стоит наибольший элемент в двумерном массиве. Если таких элементов несколько, то выводится тот, у которого меньше номер строки, а если номера строк равны, то тот, у которого меньше номер столбца.
Примеры
Ввод
Вывод
3 4
0 3 2 4
2 3 5 5
5 1 2 3
1 2
yxwz
Объяснение:
Чтобы значение функции (¬x ≡ z) → (y ≡ (w ∨ x)) было ложным, выражение ¬x ≡ z должно быть истинным, а выражение y ≡ (w ∨ x) – ложным. Чтобы первое выражение было истинным, переменные x и z должны иметь противоположные значения: 0 и 1 или 1 и 0.
Рассмотрим третью строку таблицы. Три переменных равны нулю, F = 0. Значит, оставшаяся переменная (переменная 2 в таблице) равна 1, и это z или x. Тогда y = 0, w = 0, и чтобы выражение y ≡ (w ∨ x) было ложным, необходимо, чтобы x = 1. Значит, второй столбец – x. Другой подходящей комбинации с тремя нулями быть не может, значит, в пустых клетках в первой и второй строках таблицы должны стоять единицы.
Поскольку x и z должны иметь разные значения, а x – это переменная 2, из первой и второй строк таблицы видим, что z – переменная 4.
Рассмотрим вторую строку. В ней x = 1, тогда w ∨ x= 1 независимо от значения w, и чтобы выражение y ≡ (w ∨ x) было ложным, необходимо, чтобы y = 0. Получается, что y – переменная 1, w – переменная 3.
<Code>
--- Python 3.8.3 ---
import typing
from typing import Callable
from typing import AnyStr
from typing import Any
import re
import string
def StringCount(RawString: AnyStr, Selector: Callable[[AnyStr], bool], splitter: AnyStr = None) -> int:
'''Подсчитывает кол-во вхождений элемента, удовлетворяющего условию, в строку или подстроку при заданном splitter'''
counter = 0
if splitter:
ToAnalyse = RawString.split(splitter)
else:
ToAnalyse = list(RawString)
for item in ToAnalyse:
if Selector(item): counter += 1
return counter
def main():
Strings = [input() for i in range(int(input()))]
for s in Strings:
Uppercase = StringCount(s, lambda p: lambda p: p.isupper())
Spaces = s.count(' ')
print(f'String: {s}\nSpaces: {Spaces}\nUppercase: {Uppercase}')
if __name__ == "__main__":
main()
<\Code>
На скриншотах приложены тесты программы.