инф. Обработка данных, вводимых из файла в виде последовательности чисел
Скачать 0.56 Mb.
|
6 На плоскости дан набор точек с целочисленными координатами. Необходимо найти такой треугольник наибольшей площади с вершинами в этих точках, у которого нет общих точек с осью Оу, а одна из сторон лежит на оси Ох. Напишите эффективную, в том числе по памяти, программу, которая будет решать эту задачу. Размер памяти, которую использует Ваша программа, не должен зависеть от количества точек. Перед текстом программы кратко опишите используемый алгоритм решения задачи и укажите используемый язык программирования и его версию. Описание входных данных В первой строке вводится одно целое положительное число - количество точек N. Каждая из следующих N строк содержит два целых числа - сначала координата х, затем координата у очередной точки. Числа разделены пробелом. Описание выходных данных Программа должна вывести одно число - максимальную площадь треугольника, удовлетворяющего условиям задачи. Если такого треугольника не существует, программа должна вывести ноль. Пример входных данных: 8 -10 0 2 0 0 4 3 3 7 0 5 5 4 0 9 -9 Пример выходных данных для приведённого выше примера входных данных: 22.5 Соревнования по игре «Тетрис-онлайн» проводятся по следующим правилам. Каждый участник регистрируется на сайте игры под определённым игровым именем. Имена участников не повторяются. Чемпионат проводится в течение определённого времени. В любой момент этого времени любой зарегистрированный участник может зайти на сайт чемпионата и начать зачётную игру. По окончании игры её результат (количество набранных очков) фиксируется и заносится в протокол. Участники имеют право играть несколько раз. Количество попыток одного участника не ограничивается. Окончательный результат участника определяется по одной игре, лучшей для данного участника. Более высокое место в соревнованиях занимает участник, показавший лучший результат. При равенстве результатов более высокое место занимает участник, раньше показавший лучший результат. В ходе соревнований заполняется протокол, каждая строка которого описывает одну игру и содержит результат участника и его игровое имя. Протокол формируется в реальном времени по ходу проведения чемпионата, поэтому строки в нём расположены в порядке проведения игр: чем раньше встречается строка в протоколе, тем раньше закончилась соответствующая этой строке игра. Напишите эффективную, в том числе по памяти, программу, которая по данным протокола определяет победителя и призёров. Гарантируется, что в чемпионате участвует не менее трёх игроков. Перед текстом программы кратко опишите алгоритм решения задачи и укажите используемый язык программирования и его версию. Описание входных данных Первая строка содержит число N- общее количество строк протокола. Каждая из следующих N строк содержит записанные через пробел результат участника (целое неотрицательное число, не превышающее 100 миллионов) и игровое имя (имя не может содержать пробелов). Строки исходных данных соответствуют строкам протокола и расположены в том же порядке, что и в протоколе. Гарантируется, что количество участников соревнований не меньше 3. Описание выходных данных Программа должна вывести имена и результаты трёх лучших игроков по форме, приведённой ниже в примере. Пример входных данных: 9 69485 Jack 95715 qwerty 95715 Alex 83647 М 197128 qwerty 95715 Jack 93289 Alex 95715 Alex 95710 M Пример выходных данных для приведённого выше примера входных данных: 1 место. qwerty (197128) 2 место. Alex (95715) 3 место. Jack (95715) Дан список точек плоскости с целочисленными координатами. Необходимо определить: 1) номер координатной четверти K, в которой находится больше всего точек; 2) точку A в этой четверти, наименее удалённую от осей координат; 3) расстояние R от этой точки до ближайшей оси. Если в нескольких четвертях расположено одинаковое количество точек, следует выбрать ту четверть, в которой величина R меньше. При равенстве и количества точек, и величины R необходимо выбрать четверть с меньшим номером K. Если в выбранной четверти несколько точек находятся на одинаковом минимальном расстоянии от осей координат, нужно выбрать первую по списку. Точки, хотя бы одна из координат которых равна нулю, считаются не принадлежащими ни одной четверти и не рассматриваются. Напишите эффективную, в том числе по памяти, программу, которая будет решать эту задачу. Описание входных данных В первой строке вводится одно целое положительное число – количество точек N. Каждая из следующих N строк содержит координаты очередной точки – два целых числа (первое – координата x, второе – координата y). Описание выходных данных Программа должна вывести номер выбранной четверти K, количество точек в ней M, координаты выбранной точки A и минимальное расстояние R по образцу, приведённому ниже в примере. Пример входных данных: 7 -3 4 1 2 1 1 0 4 -2 -3 -6 8 -12 1 Пример выходных данных для приведённого выше примера входных данных: K = 2 M = 3 A = (-12, 1) R = 1 Радиотелескоп пытается получать и анализировать сигналы из космоса. Различные шумы переводятся в последовательность вещественные неотрицательные числа, заданные с точностью до 1 знака после десятичной точки. Для того чтобы описывать различные участки космоса, данные, получаемые из одного района, было решено характеризовать числом, равным максимальному произведению, которое можно получить, перемножая значения сигналов, приходящих из этого района. То есть требуется выбрать такое непустое подмножество сигналов (в него может войти как один сигнал, так и все поступившие сигналы), произведение значений у которого будет максимальным. Если таких подмножеств несколько, то выбрать можно любое из них. Напишите эффективную, в том числе по используемой памяти, программу (укажите используемую версию языка программирования, например, Borland Pascal 7.0), которая будет обрабатывать результаты эксперимента, находя искомое подмножество. Сигналов может быть очень много, но не может быть меньше трех. Все сигналы различны. Перед текстом программы кратко опишите используемый вами алгоритм решения задачи. На вход программе в первой строке подается количество сигналов N. В каждой из последующих N строк записано одно вещественное число с точностью до 1 знака после десятичной точки. Все числа различны. Пример входных данных: 5 12.3 0.1 100.2 0.3 1.4 Программа должна вывести в порядке возрастания номера сигналов, произведение которых будет характеризовать данную серию. Нумерация сигналов ведется с единицы. Пример выходных данных для приведенного выше примера входных данных: 1 3 5 По каналу связи передаются данные в виде последовательности положительных целых чисел. Количество чисел заранее неизвестно, но не менее двух, признаком конца данных считается число 0. После данных передаётся контрольное значение. Оно равно такому максимально возможному произведению двух чисел из переданного набора, которое делится на 7, но не делится на 49. Если такое произведение получить нельзя, контрольное значение считается равным 1. Напишите эффективную, в том числе по памяти, программу, которая будет моделировать процесс приёма данных. Программа должна ввести все числа и контрольное значение и напечатать краткий отчёт, включающий количество принятых чисел, принятое контрольное значение, вычисленное контрольное значение и вывод о совпадении значений. Перед текстом программы кратко опишите алгоритм решения задачи и укажите используемый язык программирования и его версию. Описание входных данных В каждой строке исходных данных содержится одно целое число. Сначала идут строки с основными данными – положительными числами, затем число 0 (признак окончания данных), в последней строке – контрольное значение. Описание выходных данных Программа должна вывести отчёт по форме, приведённой ниже в примере. Пример входных данных: 6 7 8 9 0 64 Пример выходных данных для приведённого выше примера входных данных: Введено чисел: 4 Контрольное значение: 64 Вычисленное значение: 63 Значения не совпали Дед Мороз и Снегурочка приходят на детские утренники с мешком конфет. Дед Мороз делит конфеты поровну между всеми присутствующими детьми (детей на утреннике никогда не бывает больше 100), а оставшиеся конфеты отдает Снегурочке. Снегурочка каждый раз записывает в блокнот количество полученных конфет. Если конфеты разделились между всеми детьми без остатка, Снегурочка ничего не получает и ничего не записывает. Когда утренники закончились, Деду Морозу стало интересно, какое число чаще всего записывала Снегурочка. Дед Мороз и Снегурочка – волшебные, поэтому число утренников N, на которых они побывали, может быть очень большим. Напишите программу, которая будет решать эту задачу. Перед текстом программы кратко опишите алгоритм решения задачи и укажите используемый язык программирования и его версию. Желательно, чтобы программа была эффективной как по времени работы, так и по используемой памяти. Программу будем считать эффективной по памяти, если используемая память не зависит от размера входных данных (то есть числа утренников). Программу будем считать эффективной по времени, если при увеличении размера входных данных N в t раз (t – любое число) время её работы увеличивается не более чем в t раз. Описание входных данных В первой строке вводится одно целое положительное число – количество утренников N. Каждая из следующих N строк содержит два целых числа: сначала D – количество пришедших на очередной утренник детей, а затем K – количество конфет в мешке Деда Мороза на этом утреннике. Гарантируется выполнение следующих соотношений: 1 ≤ N ≤ 10000 1 ≤ D ≤ 100 (для каждого D) D ≤ K ≤ 1000 (для каждой пары D, K) Описание выходных данных Программа должна вывести одно число – то, которое Снегурочка записывала чаще всего. Если несколько чисел записывались одинаково часто, надо вывести большее из них. Если Снегурочка ни разу ничего не записывала, надо вывести ноль. Пример входных данных: 7 10 58 15 315 20 408 100 1000 32 63 32 63 11 121 Пример выходных данных для приведённого выше примера входных данных: 31 Гоночная трасса состоит из двух основных дорог и нескольких переездов, позволяющих перейти с одной дороги на другую. На всех участках, включая переезды, движение разрешено только в одну сторону, поэтому переезд возможен только с дороги A на дорогу B. Гонщик стартует в точке A0 и должен финишировать в точке BN. Он знает, за какое время сможет пройти каждый участок пути по каждой дороге, то есть время прохождения участков A0A1, A1A2, ..., AN-1AN, B0B1, B1B2, ..., BN-1BN. Время прохождения всех переездов A0B0, A1B1, ..., ANBN одинаково и известно гонщику. Необходимо определить, за какое минимальное время гонщик сможет пройти трассу. Напишите эффективную, в том числе по используемой памяти, программу для решения этой задачи. Перед текстом программы кратко опишите алгоритм решения и укажите язык программирования и его версию. Входные данные В первой строке задаётся количество участков трассы N. Во второй строке задаётся целое число t – время (в секундах) прохождения каждого из переездов A0B0, A1B1, …, ANBN. В каждой из последующих N строк записано два целых числа ai и bi, задающих время (в секундах) прохождения очередного участка на каждой из дорог. В первой из этих строк указывается время прохождения участков A0A1 и B0B1, во второй – A1A2 и B1B2 и т. д. Пример входных данных 3 20 320 150 200 440 300 210 Выходные данные Программа должна напечатать одно целое число: минимально возможное время прохождения трассы (в секундах). Пример выходных данных для приведённого выше примера входных данных 750 На вход программы подаются результаты измерений, выполняемых прибором с интервалом 1 минуту. Все данные – целые числа (возможно, отрицательные). Требуется найти наибольшую сумму двух результатов измерений, выполненных с интервалом не менее, чем в 7 минут. Описание входных данных В первой строке вводится одно целое положительное число – количество измерений N, которое может быть очень велико. Гарантируется, что N > 7. Каждая из следующих N строк содержит по одному целому числу – результат очередного измерения. Описание выходных данных Программа должна вывести одно число наибольшую сумму двух результатов измерений, выполненных с интервалом не менее, чем в 7 минут. Пример входных данных: 10 1 2 3 4 5 6 7 8 9 10 Пример выходных данных для приведённого выше примера входных данных: 13 На вход программы подаются результаты измерений, выполняемых прибором с интервалом 1 минуту. Все данные – натуральные числа, не превышающие 1000. Требуется найти наименьшую сумму квадратов двух результатов измерений, выполненных с интервалом не менее, чем в 5 минут. Описание входных данных В первой строке вводится одно натуральное число – количество измерений N. Гарантируется, что 5 < N 10000. Каждая из следующих N строк содержит по одному натуральному числу – результат очередного измерения. Описание выходных данных Программа должна вывести одно число наименьшую сумму квадратов двух результатов измерений, выполненных с интервалом не менее, чем в 5 минут. Пример входных данных: 9 12 45 5 4 21 20 10 12 26 Пример выходных данных для приведённого выше примера входных данных: 169 На спутнике «Фотон» установлен прибор, предназначенный для измерения энергии космических лучей. Каждую минуту прибор передаёт по каналу связи неотрицательное вещественное число – количество энергии, полученной за последнюю минуту, измеренное в условных единицах. Временем, в течение которого происходит передача, можно пренебречь. Необходимо найти в заданной серии показаний прибора минимальное произведение двух показаний, между моментами передачи которых прошло не менее 6 минут. Количество энергии, получаемое прибором за минуту, не превышает 1000 условных единиц. Общее количество показаний прибора в серии не превышает 10 000. Напишите на любом языке программирования программу для решения поставленной задачи. Программа должна вывести одно число – описанное в условии произведение. Программа считается эффективной по времени, если время работы программы пропорционально количеству полученных показаний прибора N, т.е. при увеличении N в k раз время работы программы должно увеличиваться не более чем в k раз. Программа считается эффективной по памяти, если размер памяти, использованной в программе для хранения данных, не зависит от числа N и не превышает 1 килобайта. В первой строке задаётся число N – общее количество показаний прибора. Гарантируется, что N > 6. В каждой из следующих N строк задаётся одно неотрицательное вещественное число – очередное показание прибора. Пример входных данных: 11 12 45 5 4 25 23 21 20 10 |