РЕШИТЬ ЭТУ ЗАДАЧУ НА ПАСКАЛЬ Имеется N гор Каждая гора это треугольник, основание которого лежит на оси х. Обе стороны горы наклонены под углом 45 градусов, поэтому пик горы - угол в 90 градусов. Гора i поэтому задаётся координатами (xi yi) ее газ
пика. Никакие две горы не имеют одно и то же расположение пика
Требуется посчитать все видимые горы Но, поскольку все они примерно одного цвета невозможно увидеть гору, если ее пик лежит на границе или внутри другой горы.
Определите количество различных пиков (и следовательно гор), которые можно увидеть.
Формат ввода (файл mountains.im):
Первая строка ввода содержит N. Каждая из оставшихся N строк содержит хi (0<xis1019) и уi (1syjs109) описывающих пики гор.
Формат вывода (файл mountains.out):
Выведите минимальное количество гор, которые можно различить.
Пример ввода
3
46
72
25
Пример вывода
2
const n=4;
begin
Writeln('1 массив:');
var a:=MatrRandom(n,n,-10,10); a.Println(6);
Writeln('2 массив:');
var b:=MatrRandom(n,n,-10,10); b.Println(6);
var c:=a.ElementsByRow.Where(x->x<0)+b.ElementsByRow.Where(x->x<0)+
a.ElementsByRow.Where(x->x=0)+b.ElementsByRow.Where(x->x=0)+
a.ElementsByRow.Where(x->x>0)+b.ElementsByRow.Where(x->x>0);
c.Println;
end.
Пример:
1 массив:
-6 -3 1 8
6 -3 -8 0
8 10 -3 -9
1 -9 -2 6
2 массив:
-7 -1 -3 9
-2 -6 5 2
0 10 1 0
5 -2 5 5
-6 -3 -3 -8 -3 -9 -9 -2 -7 -1 -3 -2 -6 -2 0 0 0 1 8 6 8 10 1 6 9 5 2 10 1 5 5 5
В программе присутствует функция, предназначенная для поиска полусуммы и полуразности двух чисел.
Приведённый в задании код выполняет функцию три раза, изменяя параметры входящие и выходящие.
Стоит заметить, что при вызове функции, аргументы a и b копируются в функции в переменные a и b, а a1 и b1 - это переменные, предназначенные для возврата значений p и q соответственно.
Первое выполнение функцииa (x) = 2, b (y) = -4
p (a1) = (x + y) / 2 = (2 + (-4)) / 2 = -2 / 2 = -1
q (b1) = (x - y) / 2 = (2 - (-4)) / 2 = 6 / 2 = 3
Выводa = 2, b = -4, a1 = -1, b1 = 3
Второе выполнение функции(изменили возвращаемые переменные)a (x) = 2, b (y) = -4
p (b1) = (x + y) / 2 = (2 + (-4)) / 2 = -2 / 2 = -1
q (a1) = (x - y) / 2 = (2 - (-4)) / 2 = 6 / 2 = 3
Выводa = 2, b = -4, a1 = 3, b1 = -1
Третье выполнение функции(изменили входные данные)a (x) = -4, b (y) = 2
p (a1) = (x + y) / 2 = (-4 + 2) / 2 = -2 / 2 = -1
q (b1) = (x - y) / 2 = (-4 - 2) / 2 = -6 / 2 = -3
Выводa = 2, b = -4, a1 = -1, b1 = -3