Начнем с утверждения, что это была блондинка, потому что таких утверждений два. Если II сказал правду, то второе его утверждение ложно и блондинка была в шляпе. Тогда утверждение I о брюнетке - ложь. Это рассуждение иллюстрирует вторая сверху таблица. В то же время, будет ложным утверждение IV об отсутствии очков и получается, что была блондинка в шляпе и в очках. В этом случае ложно утверждение III о том, что это была рыжая. Удостоверяемся, что противоречий в цепочке рассуждений нет. Окончательно: это была блондинка в шляпе и очках. Каждый свидетель дал одно истинное показание и одно ложное.
Прочие проверки можно не делать, считая задачу корректной.
// PascalABC.NET 3.1, сборка 1230 от 27.04.2016 const КолСтрок=3; КолСтолбцов=5; begin var Массив: array [1..КолСтрок,1..КолСтолбцов] of integer; var СуммыПоСтрокам: array[1..КолСтолбцов] of integer; Writeln('Введите элементы массива (',КолСтрок,',', КолСтолбцов,') построчно:'); for var строка:=1 to КолСтрок do for var столбец:=1 to КолСтолбцов do begin Read(Массив[строка,столбец]); СуммыПоСтрокам[строка]+=Массив[строка,столбец] end; Writeln('Суммы построчно:'); for var строка:=1 to КолСтрок do Print(СуммыПоСтрокам[строка]) end.
1 терабайте = 1024 гигабайт
1 гигабайте = 1024 мегабайт
1 мегабайтк = 1024 килобайт