Задача 888. Карусель. acmp.ru C++

preview_player
Показать описание
Рекомендации по теме
Комментарии
Автор

#define int long long
И не нужно думать))

undefined_
Автор

Обезательно посмотрю, только после того, как сам решу.

maxzaranik
Автор

РЕБЯТА НУЖНА ВАША ПОМОЩЬ:

условие:
Написать программу, определяющую, или данная точка принадлежит данном треугольнике, если указано координаты этой точки и вершин треугольника.
Входные данные. В единственной строке файла Point.dat через пробел записано координаты данной точки и вершин треугольника. Все числа целые и не превышают по модулю 100.
Исходные данные. В файле Point.res записать слово "yes" или "no


program _1;
var
x, y, x1, y1, x2, y2, x3, y3: real;
a, b, c, p, s, S2, S3, S1: real;
a1, b1, c1, a2, b2, c2, a3, b3, c3, sum: real;
function dl(x1, y1, x2, y2: real): real; //длина сторон
var
ans: real;
begin
ans := sqrt(sqr(x1 - x2) + sqr(y1 - y2));
dl := ans;
end;
function sq(a, b, c: real): real; //плошадь сторон
var
s, p: real;
begin
p := (a + b + c) / 2;
s := sqrt(p * (p - a) * (p - b) * (p - c));
sq := s;
end;
begin
read(x, y, x1, y1, x2, y2, x3, y3);
a := dl(x1, y1, x2, y2);
b := dl(x2, y2, x3, y3); // площадь большого треугольника s
c := dl(x1, y1, x3, y3);
p := (a + b + c) / 2;
s := sqrt((p * (p - a) * (p - b) * (p - c)));// плошадь по формуле Герона


a1 := dl(x1, y1, x, y);
b1 := dl(x1, y1, x2, y2); //плошадь маленького 1 треугольника s1
c1 := dl(x2, y2, x, y);
s1 := sq(a1, b1, c1);

a2 := dl(x1, y1, x, y);
b2 := dl(x, y, x3, y3); // плошадь маленького 2 треугольника s2
c2 := dl(x1, y1, x3, y3);
s2 := sq(a2, b2, c2);

a3 := dl(x3, y3, x, y);
b3 := dl(x, y, x2, y2); // площадь маленького 3 треугольника s3
c3 := dl(x2, y2, x3, y3);
s3 := sq(a3, b3, c3);

sum := s1 + s2 +s3; //сумма внутрених треугольников (s1+s2+s3)
writeln(sum);
if(sum = s) then writeln('YES') else writeln('NO');
end.

пример входних данных:
1 1 0 0 0 3 3 0
ответ: yes

а у меня пишет: NO хотя правильно

maxzaranik
Автор

Если не сложно подскажыте, где ошыбки

maxzaranik