В первой четверти (x > 0, y > 0) заштрихована четверть окружности с началось в центре координат и радиусом 6. Уравнение этой окружности , тогда точка попадает в заштрихованную область, если
. Сюда же можно добавить и отрезок от 0 до 6 по оси абсцисс.
В четвертой четверти (x > 0, y < 0) заштрихован треугольник. Граница проходит через точки (0, -6) и (6, 0), уравнение - линейная функция y = x - 6. Сюда будут попадать точки, для которых y > x - 6.
Собираем условия вместе и можно писать программу.
Код (PascalABC.NET):
begin
var (x, y) := ReadReal2;
if (x > 0) and (y >= 0) and (x * x + y * y < 36) then
write('true')
else if (x > 0) and (y < 0) and (y > x - 6) then
write('true')
else
write('false')
end.
Код (Python 3):
x, y = map(float, input().split())
if x > 0 and y >= 0 and x * x + y * y < 36:
print('true')
elif x > 0 and y < 0 and y > x - 6:
print('true')
else :
print('false')
Пример ввода:
3 5
Пример вывода:
true
При перезаписи блока и очередной переоценке необходимо учитывать типы данных в блоке до перезаписи (T0), после перезаписи (T1) и в соседних блоках (TL, TR).
Если T0 = T1, то количество кусков данных не изменяется, т.е. W[i+1] = W[i]
TL = T0 = TR <> T1 -> W[i+1] = W[i] + 2
TL = T1 = TR <> T0 -> W[i+1] = W[i] - 2
TL = TR, T0 <> TL, T1 <> TL -> W[i+1] = W[i]
Далее рассмотрим случаи, когда TL <> TR
(TL = T0, TR = T1) или (TR = T0, TL = T1) -> W[i+1] = W[i]
(TL = T0, TR <> T1) или (TR = T0, TL <> T1) -> W[i+1] = W[i] + 1
(TL = T1, TR <> T0) или (TR = T1, TL <> T0) - > W[i+1] = W[i] - 1
Если все четыре типа не совпадают, то W[i+1] = W[i]
Если перезаписывается блок с адресом 0, считать, что тип TL не совпадает ни с одним из трех других.Аналогично при перезаписи блока с адресом , но для TR.
Вроде все?