В
Все
Б
Биология
Б
Беларуская мова
У
Українська мова
А
Алгебра
Р
Русский язык
О
ОБЖ
И
История
Ф
Физика
Қ
Қазақ тiлi
О
Окружающий мир
Э
Экономика
Н
Немецкий язык
Х
Химия
П
Право
П
Психология
Д
Другие предметы
Л
Литература
Г
География
Ф
Французский язык
М
Математика
М
Музыка
А
Английский язык
М
МХК
У
Українська література
И
Информатика
О
Обществознание
Г
Геометрия
Golinskaya2002a
Golinskaya2002a
08.04.2022 05:29 •  Информатика

Как известно, нет самолетов-мужчин и самолетов-женщин. Однако, каждому самолету на Земле нравится какой-то один другой самолет. Всего на Земле n самолетов, пронумерованных от 1 до n, при этом самолету номер i нравится самолет f i, где 1 ≤ f i ≤ n, а также f i ≠ i. Назовем любовным треугольником ситуацию, когда самолету A нравится самолет B, самолету B нравится самолет C, а самолету C нравится самолет A. Проверьте, есть ли на Земле хотя бы один любовный треугольник.

Входные данные

Первая строка содержит одно целое число n (2 ≤ n ≤ 5000) — число самолетов.

Вторая строка содержит n целых чисел f 1, f 2, ..., f n (1 ≤ f i ≤ n, f i ≠ i), что означает, что i-му самолету нравится f i-й.

Выходные данные

Выведите «YES», если на Земле есть любовный треугольник из самолетов. Иначе выведите «NO».

Каждую букву можно выводить в любом регистре: строчную или заглавную.

Язык программирования Питон 3 или С++​

Показать ответ
Ответ:
nataliamoroz830
nataliamoroz830
23.10.2020 15:15

оператор присваивания :=

оператор ввода read(x1,x2,...,xn) или readln(x1,x2,...,xn)

оператор вывода write(x1,x2,...,xn) или writeln(x1,x2,...,xn)

условный оператор if условие then оператор 1 else оператор 2

оператор варианта case управляющая переменная of

                                     набор значений1: оператор1;

                                     набор значений2: оператор2;

                                     ...

                                     набор значенийn: операторN

                               else

                                    альтернативный оператор

                              end;

оператор цикла с предусловиями while ... do

оператор цикла с постусловием repeat ... until

оператор цикла for ... do

оператор break осуществляет немедленный выход из циклов repeat, while, for.

оператор continue начинает новую итерацию цикла, даже если предыдущая не была завершина.

оператор exit осуществляет выход из подпрограммы.

оператор halt прекращает выполнение программы и возвращает код завершения в операционную систему.

0,0(0 оценок)
Ответ:
estvolygina
estvolygina
24.07.2020 11:50

Объяснение:

procedure F(n: integer);

begin

 if n>0 then begin

   Write (n);

   F(n-2);

   F(n div 4);

   end

end;

begin

 F(9);

end.

На выходе будет 97531112

Если нужна трассировка, её можно сделать примерно так:

procedure F(n: integer);

begin

 Writeln('Вход');

 if n>0 then begin

   Writeln ('В выходную строку: ',n);

   Writeln('Вызов F(n-2)');

   F(n-2);

   Writeln('Вызов F(n div 4)');

   F(n div 4);

   end;

   Writeln('Выход')

end;

begin

 F(9);

end.

Результат трассировки:

Вход

В выходную строку: 9

Вызов F(n-2)

Вход

В выходную строку: 7

Вызов F(n-2)

Вход

В выходную строку: 5

Вызов F(n-2)

Вход

В выходную строку: 3

Вызов F(n-2)

Вход

В выходную строку: 1

Вызов F(n-2)

Вход

Выход

Вызов F(n div 4)

Вход

Выход

Выход

Вызов F(n div 4)

Вход

Выход

Выход

Вызов F(n div 4)

Вход

В выходную строку: 1

Вызов F(n-2)

Вход

Выход

Вызов F(n div 4)

Вход

Выход

Выход

Выход

Вызов F(n div 4)

Вход

В выходную строку: 1

Вызов F(n-2)

Вход

Выход

Вызов F(n div 4)

Вход

Выход

Выход

Выход

Вызов F(n div 4)

Вход

В выходную строку: 2

Вызов F(n-2)

Вход

Выход

Вызов F(n div 4)

Вход

Выход

Выход

Выход

0,0(0 оценок)
Популярные вопросы: Информатика
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?
Спроси ai-бота