Во вложении на верхнем рисунке показана схема двумерного массива (матрицы), размером 100х100. Желтые кружки - элементы массива. Выделена главная диагональ матрицы (условие, когда номер строки равен номеру столбца), а треугольники с заливкой выделяют верхнюю и нижнюю треугольные матрицы. Если исходная матрица квадратная, то количество элементов в обоих треугольных матрицах одинаково. На нижнем рисунке описывается заполнение элементов массива. Строки нижней треугольной матрицы заполняется номерами строки (зеленая область), а столбцы верхней треугольной матрицы - номерами столбцов с обратным знаком (красная область). При внимательном рассмотрении можно понять, что каждому элементу зеленой области будет сопоставлен элемент красной с таким же значением, но с противоположным знаком. Следовательно, сумма этих элементов будет равна нулю. Осталось найти сумму элементов главной диагонали. Там будут элементы -1, -2, -3, ... -99, -100. Это сумма первых 100 чисел натурального ряда, образующих арифметическую прогрессию, взятая с противоположным знаком.
"...получил от Гриши, Ярослава и Бориса ответ: не мы" - это некорректная постановка задачи. Если понимать это так, что каждый ответил "не я", задача имеет решение. Но если "не мы" - это означает у каждого "не мы трое", то получается что трое ответили одинаково, но солгали двое, а это противоречие. Следовательно, надо все же понимать, что "не мы" - это "не я".
Итак, два ответа истинных, два - ложных. Тогда среди "не мы" есть хотя бы один истинный и один ложный ответ.
Пусть один "не мы" ложный (а два истинных), тогда его автор и взял ручку Никиты, а Лев солгал и он знает, кто взял ручку.
А теперь пусть два "не мы" ложных, а один истинный. Тогда получается, что ручку взяли сразу двое - те, кто солгал. Это противоречит условию, где сказано. что ручку взял один, следовательно, так быть не может.
// Внимание! Если программа не работает, обновите версию!
begin
var x:=ReadReal('x=');
if (x>8) or (x<-8) then Writeln('|x|>8')
else Writeln('|x|<=8')
end.