Программа для решения задачи - в прилагаемом файле. Только размерность там не 20*30, а 5*4 (чтобы легче проверять было).
Var x,y:real;
begin
write('x, y: ');
readln(x,y);
if (y<=0)and(y>=1.5*x-6)and(y>=-1.5*x-6)
then writeln('Да') else writeln('Нет');
end.
Пример:
x, y: 1 -2
Да
<span>• корпус компьютера с блоком питания мощностью 400 В — 2480 руб.;
</span><span>• процессор Socket-АМЗ AMD Phenom II Х4, 3,5 ГГц — 5510 руб.;
</span><span>• материнская плата Socket-АМЗ ASUSTeK PCI-E+GbLAN SATA 4DDR-III — 3300 руб.
</span><span>• модули оперативной памяти объемом 4 Гбайта — 1330 руб.;
</span><span>• модули оперативной памяти объемом 4 Гбайта — 1330 руб.;
</span><span>• жесткий диск объемом 500 Гбайт — 3100 руб.;
• жесткий диск объемом 1 Тбайт — 3570 руб.;
</span><span>• видеокарта с объемом видеопамяти 1 Гбайт — 2700 руб.;
</span><span>• звуковые колонки 5 В — 730 руб.;
Звуковая карта будет интегрирована в материнской её достаточно.
</span><span>• сетевая карта 10/100/1000 Мбит/с — 570 руб.;
</span><span>• привод CD-RW/DYD-RW — 970 руб.;
</span><span>• монитор LCD, диагональ 19 дюймов — 3600 руб.;
</span><span>• мышь оптическая — 200 руб.;
• клавиатура — 180 руб.;
</span>• принтер лазерный — 4630 руб.;
В принципе этого достаточно.<span />
C1, r1, c2, r2 = [int(x) for x in input().split()]
hasMove = c1 == c2 or r1 == r2 or abs(c1-c2) == abs(r1-r2)
print('YES' if hasMove else 'NO')
A, 36 (10) = 100100 (2)
B, 4 (10) = 000100 (2)
A + B = 101000 (2) = 40 (10)
A and B = 000100 (2) = 4 (10)
A xor B = 1000000 (2) = 32 (10)
----------
побитовые операции
x AND y равно 1 тогда и только тогда когда оба бита = 1
x XOR y равно 1 когда биты неравны, те 1 и 0, а когда биты равны результат = 0