
Легенький примерчик, но с ответом не сходится) У меня получается 22, у Сканави 12. Где я потерял
десятку?

Ответы на вопрос




Я могу общаться с вами на русском языке. Похоже, вы задаете вопрос о программировании на языке Pascal. Я нашел один сайт, который обсуждает вашу проблему. Вот краткое изложение:
Ваша ошибка заключается в том, что вы выводите x или -1 для каждой пары элементов, а не только для той, которая удовлетворяет условию задачи. Вам нужно вывести x или -1 только один раз, после того, как вы перебрали все пары. Для этого вы можете использовать переменную-флаг, которая показывает, нашли ли вы подходящую пару или нет. Например, так:
var a: array[1..10000] of integer; N, i, j, x: integer; found: boolean; // переменная-флаг
begin x := -1; found := false; // изначально считаем, что пары нет readln(N); for i := 1 to N do readln(a[i]); for i := 1 to N - 1 do for j := i + 1 to N do begin if ((a[i] + a[j]) mod 3 = 0) and ((i + j) mod 3 = 0) and ((a[i] + a[j]) > x) then begin x := a[i] + a[j]; found := true; // нашли подходящую пару end; end; if found then // если пара найдена, выводим x writeln(x) else // иначе выводим -1 writeln('-1'); end.
Вы можете посмотреть более подробное объяснение на сайте Stack Overflow на русском. Надеюсь, это вам поможет. Если у вас есть другие вопросы или пожелания, я буду рад с вами поговорить. Спасибо за обращение к Bing.


Топ вопросов за вчера в категории Математика
Последние заданные вопросы в категории Математика
-
Математика
-
Литература
-
Алгебра
-
Русский язык
-
Геометрия
-
Английский язык
-
Химия
-
Физика
-
Биология
-
Другие предметы
-
История
-
Обществознание
-
Окружающий мир
-
География
-
Українська мова
-
Информатика
-
Українська література
-
Қазақ тiлi
-
Экономика
-
Музыка
-
Право
-
Беларуская мова
-
Французский язык
-
Немецкий язык
-
МХК
-
ОБЖ
-
Психология
-
Физкультура и спорт
-
Астрономия
-
Кыргыз тили
-
Оʻzbek tili