Присоединиться

11 класс·высокий уровень

Необходимо найти максимально возможную площадь невырожденного (то есть

Условие

На плоскости задано множество точек с целочисленными координатами. Необходимо найти максимально возможную площадь невырожденного (то есть имеющего ненулевую площадь) треугольника, одна вершина которого расположена в начале координат, а две другие лежат на биссектрисах углов, образованных осями координат, и при этом принадлежат заданному множеству. Если такого треугольника не существует, необходимо вывести соответствующее сообщение.Напишите эффективную по времени и по используемой памяти программу для решения этой задачи.Программа считается эффективной по времени, если при увеличении количества точек в k раз время работы возрастает не более чем в k раз. Программа считается эффективной по памяти, если размер памяти для хранения всех необходимых данных не зависит от количества точек и не превышает 1 килобайта.Перед текстом программы кратко опишите алгоритм решения и укажите язык программирования и его версию.Входные данныеВ первой строке задаётся N — количество точек в заданном множестве. Каждая из следующих строк содержит два целых числа — координаты очередной точки.Пример входных данных:36 6-8 89 7Выходные данныеЕсли искомый треугольник существует, программа должна напечатать одно число: максимально возможную площадь треугольника, удовлетворяющего условиям. Если искомый треугольник не существует, программа должна напечатать сообщение: «Треугольник не существует». Пример выходных данных для приведённого выше примера входных данных: 48. ↔Критерии оценивания выполнения задания | Баллы | Программа правильно работает для любых входных данных произвольного размера и находит ответ, не сохраняя входные данные в массиве. Программа удовлетворяет требованиям эффективности, указанным в условии задачи.Допускается наличие в тексте программы одной синтаксической ошибки: пропущен или неверно указан знак пунктуации, неверно написано или пропущено зарезервированное слово языка программирования, не описана или неверно описана переменная, применяется операция, недопустимая для соответствующего типа данных (если одна и та же ошибка встречается несколько раз, то это считается за одну ошибку). | 4 | Не выполнены условия, позволяющие поставить 4 балла, при этом программа работает верно, время работы линейно зависит от N, но размер используемой памяти зависит от количества точек.Например, входные данные запоминаются в массиве или другой структуре данных, размер которой соответствует числу N.Допускается одна из следующих ошибок.1. Пропущенная или неверная инициализация максимумов.2. В некоторых языках и системах программирования (например, в Бейсике) все переменные после создания имеют значение 0. В этом случае отсутствие инициализации нельзя считать ошибкой.3. Вместо абсолютных значений (модулей) используются непосредственные значения координат.4. Ошибка в сравнении, в результате которой в одном или нескольких местах находится минимальное значение вместо максимального.5. Использование вещественных вычислений и операции извлечения корня для нахождения площади.6. Неверная обработка случая отсутствия требуемого треугольника. Допускается наличие от одной до трёх синтаксических ошибок, описанных в критериях на 4 балла. | 3 | Не выполнены условия, позволяющие поставить 3 или 4 балла, приэтом программа работает верно, эффективно или нет. В частности, в 2 балла оцениваются переборные решения, в которых все исходные данные сохраняются в массиве, рассматриваются все возможные треугольники, из которых выбираются подходящие. Допускается наличие нескольких содержательных ошибок, описанных в критериях на 3 балла, и до пяти синтаксических ошибок, описанных в критериях на 4 балла. | 2 | Не выполнены условия, позволяющие поставить 2, 3 или 4 балла, но программа работает в отдельных частных случаях. 1 балл также ставится, если программа неработоспособна или не написана, но из пояснений видно, что экзаменуемый в целом верно представляет путь решения. | 1 | Не выполнены условия, позволяющие поставить 1, 2, 3 или 4 балла. | 0 | Максимальный балл | 4 |

Формат задания

Развёрнутый ответ: короткого ответа здесь нет — оценивается само рассуждение. Разбор откроется после входа.

Решение по шагам

  1. Как рассуждать

    Решение. Биссектрисами углов, образованных осями координат, служат две прямые: y=xy = x и y=xy = - x Очевидно, что вершины невырожденного треугольника должны лежать на разных биссектрисах, их координаты должны иметь вид (a, a) и (b, -b). Площадь такого треугольника равна |a| · |b|. Эта площадь будет максимальной при максимальных значениях |a| и |b|. Пример правильной программы на Паскале program P27; var N: integer; {количество точек} x,y: integer; {координаты очередной точки} amax, bmax: integer; s: integer; {площадь} i: integer;begin readln(N); amax:=0; bmax:=0; for i:=1 to N do begin readln(x,y); if (x=y) and (abs(x)>amax) then amax:=abs(x); if (x=-y) and (abs(x)>bmax) then bmax:=abs(x); end; s:=amax*bmax; if s=0 then writeln('Треугольник не существует') else writeln(s)end. Пример правильной, но неэффективной программы на языке Паскаль.var points: array[1..10000, 1..2] of integer; {исходные данные} N: integer; {количество точек} maxs: integer; {максимальная площадь} a, b: integer; i, j: integer;begin readln(N); maxs := 0; a := 0; b := 0; for i := 1 to N do read(points[i, 1], points[i, 2]); for i := 1 to N do for j := 1 to N do begin if (points[i, 1] = points[i, 2]) and (points[i, 1] <>

Осталось ещё 3 шага

  1. Шаг 2

  2. Шаг 3

  3. Шаг 4

Получить полное решение

Бесплатно · займёт минуту

Другие задачи по теме «Программирование»

Необходимо найти максимально возможную площадь невырожденного (то есть — решение с объяснением | Lom Ai