СДАМ ГИА: РЕШУ ЕГЭ
Образовательный портал для подготовки к экзаменам
Информатика
≡ информатика
сайты - меню - вход - новости




Задания
Версия для печати и копирования в MS Word
Задание 27 № 5258

Дан список точек плоскости с целочисленными координатами. Необходимо определить:

 

1) номер координатной четверти K, в которой находится больше всего точек;

2) точку A в этой четверти, наименее удалённую от осей координат;

3) расстояние R от этой точки до ближайшей оси.

 

Если в нескольких четвертях расположено одинаковое количество точек, следует выбрать ту четверть, в которой величина R меньше. При равенстве и количества точек, и величины R необходимо выбрать четверть с меньшим номером K. Если в выбранной четверти несколько точек находятся на одинаковом минимальном расстоянии от осей координат, нужно выбрать первую по списку. Точки, хотя бы одна из координат которых равна нулю, считаются не принадлежащими ни одной четверти и не рассматриваются.

 

Напишите эффективную, в том числе по памяти, программу, которая будет решать эту задачу. Перед текстом программы кратко опишите алгоритм решения задачи и укажите используемый язык программирования и его версию.

 

Описание входных данных

В первой строке вводится одно целое положительное число - количество точек N.

Каждая из следующих N строк содержит координаты очередной точки - два целых числа (первое — координата x, второе — координата у).

 

 

Описание выходных данных

Программа должна вывести номер выбранной четверти 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

 

Примечание.

Считайте, что во входных данных имеется хотя бы одна точка, не лежащая на осях координат.

Решение.

Программа читает исходные данные, не запоминая все точки в массиве. Для каждой четверти хранятся количество точек в этой четверти, координаты ближайшей к осям точки, минимальное расстояние до оси. Для каждой точки определяется, в какой четверти она лежит, после чего данные соответствующей четверти корректируются. При этом точки, лежащие на осях (одна из координат равна нулю), не рассматриваются.

Пример правильной и эффективной программы на алгоритмическом языке

алг

нач

цел N

цел х, у

целтаб М[1:4], Rm[1:4], хА[1:4], уА[1:4]

цел i

цел к

нц для i от 1 до 4 М [i] :=0 Rm[i]:=0

кц

ввод N

нц N раз

ввод х, у

выбор

при х>0 и у>0 : к := 1

при х<0 и у>0 : к :=2

при х<0 и у<0 : к :=3

при х>0 и у<0 : к :=4

иначе к :=0

все

если к>0 то

М[к]:=М[к]+1

если (imin(iabs(х),iabs(у))0) или Rm[k]=0

то

Rm[к]:=imin(iabs(х),iabs(у))

хА[к]:=х; уА[к]:=у

все

все

кц к: =1

нц для i от 2 до 4

если М[i]>М[к] или M[i]=M[k] и Rm[i] < Rm[k]

то к:=i все

кц

вывод "К = ", к, нc

вывод "М = " М [ к] , нc

вывод "А = (", хА[к], ", ", уА[к], ")", нc

вывод "R =" ,Rm[к]

кон