Заочная олимпиада по программированию
26
Заочная олимпида по программированию
17 февраля 1985 года Учебно-производственный центр вычислительной техники Октябрьского района Москвы и институты Электронных управляемых машин Минипибора СССР и Проблем информационных (шестую) Московскую городскую олимпиду по программированию для школьников, в котором участвовали около 200 человек.
Журнал «Квант» предлагает всем школьникам и учащимся ПТУ, умEOЩИМ программировать (кроме Москвы), задачи этой олимпиды в качестве задания Заочной олимпиды по программированию. Решения отправляйте не позднее 1 августа (по почтовомуITEMПЕЛЮ) на адрес «Кванта», написав на конверте: «Олимпида по программированию». Присланьные решения будут оценяться жюри под председательством доктора физиокатематических наук А. Л. Брудно. Все участникам будут присланы отзываны об их работах. Победители получат Дипломы журнала «Квант».
Имейте в виду, что описки снижают оценку решения. Снижают оценку и алгоритмы с излишим числом действия или массивами, без которых можно обойтись. Хорошие алгоритмы и экономно написанные программы оценку повышают. В каждой работе зачитываются только 3 задачи с более удачными решениями.
Задчи приведены в порядке убывания трудности. Принимаются решения на любых языках программирования. Переед решения надо дать сложное описание алгоритма.
Задачи
-
Разложение на слагаемые. Напечать все способы представления натурального числа суммой натуральных чисел. Перестановка слагаемых новым способом не считается.
-
Равные элементы. Задан массив чисел . Каждая строка массива упорядочена по возрастанию. Найти и отпечать число, встречающееся во всех строках, и надпись NET, если такого числа не оказывается.
-
Несоставляемое число. Задан массив натуральных чисел . Найти и отпечать минимальное натуральное число, не представное суммой элементов массива . Сумма может состоять и из одного слагаемого, но каждый элемент массива может входить в нее только один раз.
-
Тетраэды. На гранах двух равных правых tetraэдров и написаны числа на одном, и на другом (в том же порядке). Можно ли совместить tetraэдры так, чтобы на совпавших гранах оказались написаны одинаковые числа? Напечать DA или NET.
-
Самое частое число. В массиве чисел найти число, повторяющее максимальное количество раз. Если их несколько, то одно из них.
-
Системы числения. В целочисленном массиве записаны разряды (цифры) некоторого натурального числа в -ричной системе числения ( — разряд единиц и т. д.). Отпечать разряд этого числа в -ричной системе числения. Числа и не более числа десять.
-
Воковая диагональ. Найти сумму элементов массива , имеющих заданную разность индексов . Число — целое, но не обязательно положительное.
Пояснение. Здесь массив обозначает массив чисел для и , а запись обозначает элемент . Если сказано, что массив задан, то значит заданный числа и значения элементов массива. Аналогичный смысл имеются и задания других массивов.
В программах (решения) ученики вводят извлеканые значения и печатают их. Неокоторые оформляют решения в виде подпрограммы (в алгорите — procedure, в фортера — subroutine и т. д.). В тех языках, где размер массивов нужно задать числа (как на фортера), ученики их выбирают произвольно.
«Хорошие решения» должны укладывать (с точностью до постоянного множителя) в следующие колчества: (задача 2), или (задачи 3 и 5), min {} (задача 7), считая и большими числами.