def sqc(xa,ya,xb,yb,xc,yc) :
return ((xb - xa) * (yc - ya) - (xc - xa) * (yb - ya)) / 2
xa, ya, xb, yb = map(float,input().split())
n, m = map(int,input().split())
astra = []
sc = []
res, smax = 0, 0
for i in range(n) :
xc, yc = map(float,input().split())
astra.append((xc,yc))
sctmp = sqc(xa,ya,xb,yb,xc,yc)
if smax < abs(sctmp) :
smax = abs(sctmp)
#print(sctmp)
sc.append(sctmp)
for i in range(m) :
xc, yc = map(float,input().split())
sp = sqc(xa,ya,xb,yb,xc,yc)
if smax < abs(sp) :
smax = abs(sp)
#print(sp)
for j in range(n) :
xd, yd = astra[j][0], astra[j][1]
if sp * sc[j] < 0 :
if smax < abs(sp * sc[j]) :
smax = abs(sp * sc[j])
print('{:.2f}'.format(smax))
У меня получилось.
відповідь:
решение логических выражений принято записывать в виде таблиц истинности – таблиц, в которых по действиям показано, какие значения принимает логическое выражение при всех возможных наборах его переменных.
при составлении таблицы истинности для логического выражения необходимо учитывать порядок выполнения логических операций, а именно:
действия в скобках,
инверсия (отрицание),
& (конъюнкция),
v (дизъюнкция),
=> (импликация),
< => (эквивалентность).
алгоритм составления таблицы истинности:
1. выяснить количество строк в таблице (вычисляется как 2n, где n – количество переменных + строка заголовков столбцов).
2. выяснить количество столбцов (вычисляется как количество переменных + количество логических операций).
3. установить последовательность выполнения логических операций.
4. построить таблицу, указывая названия столбцов и возможные наборы значений исходных логических переменных.
5. заполнить таблицу истинности по столбцам.
6. записать ответ.
пример 6
построим таблицу истинности для выражения f=(avb)& (¬av¬b).
1. количество строк=22 (2 переменных+строка заголовков столбцов)=5.
2. количество столбцов=2 логические переменные (а, в)+ 5 логических операций (v,& ,¬,v,¬) = 7.
Борис - 1
Олег - 2
Алексей - 3
Евгений - 4
Михаил - 5
Объяснение:
Первые три условия нам понятны (ставим крестик в таблице как сказано в условиях)
Михаил отстал от Алексея на два места: это означает что Михаил не может быть на первом и втором месте или четвертым(из 1 условия), Алексей не может быть на 4 или 5 месте.
Олег финишировал сразу за Борисом: Борис не мог стоять на пятом месте, а Олег на пятом.
Когда мы заполнили табличку крестиками, смотрим кто куда подходит.
Алексей: - X - X X
Борис:. X - - - X
Евгений: X - - - X
Михаил: X X - - -
Олег: - - - - X
На пятом месте стоит Михаил, Алексей на 3( из условия 4 ), Олег 2 и Борис 1,а Евгений 4(т.к. другие месторасположения мест противоречили бы 5 условию)