IPB
ЛогинПароль:

> Прочтите прежде чем задавать вопрос!

1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code], либо быть опубликованы на нашем PasteBin в режиме вечного хранения.
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!

> задачка на геометрию, очень сложная по моему
сообщение
Сообщение #1


Учиться, учиться еще раз учиться
***

Группа: Пользователи
Сообщений: 158
Пол: Мужской
Реальное имя: Яшар

Репутация: -  3  +


У меня тут одна задачка появилась , никак не могу решить mega_chok.gif .Она тоже с acm.timus.ru. У меня несколько(т.е. 12) тестов проходит nea.gif . Спрашивал у всех учителей математики нашей школы. Каждый говорит одно, но никакой из тех алго не проходит. norespect.gif Самый лучший пока мой собственный cool.gif .

Ну в задаче, если коротко описать, нужно определить можно ли поместить второй треугольник в первый. Длина сторон каждого заданы. Мой алгоритм не очень уж и трудный. Я сначала нахожу сторону с макс. длиной и беру его как за основание(это действие выполняю для обоих). Потом сраниваю основания и вершины(по основанию) и выдаю ответ. Вот и мой код:

var
k,l1,l2,a,b,c,x,y,z:longint;
h1,h2,p1,p2:extended;

function max(x,y,z:longint):longint;
begin
if (x>=y)and(x>=z) then max:=x
else
if (y>=z)and(y>=x) then max:=y
else max:=z;
end;

procedure smen(var a,b,c:longint; l:longint);
begin
if a=l then
begin
k:=c;
c:=a;
a:=k;
end else
if b=l then
begin
k:=c;
c:=b;
b:=k;
end;
end;

begin
readln(x,y,z);
readln(a,b,c);
p2:=(a+b+c)/2;
p1:=(x+y+z)/2;
l1:=max(x,y,z);
l2:=max(a,b,c);
smen(x,y,z,l1);
h1:=(2/z)*sqrt(p1*(p1-x)*(p1-y)*(p1-z));
hx:=(2/x)*sqrt(p1*(p1-x)*(p1-y)*(p1-z));
hy:=(2/y)*sqrt(p1*(p1-x)*(p1-y)*(p1-z));
smen(a,b,c,l2);
h2:=(2/c)*sqrt(p2*(p2-a)*(p2-b)*(p2-c));
ha:=(2/a)*sqrt(p2*(p2-a)*(p2-b)*(p2-c));
hb:=(2/b)*sqrt(p2*(p2-a)*(p2-b)*(p2-c));
if not ((l1>=l2)and(h1>=h2)) then writeln('NO')
else writeln('YES');
end.



Я даже знаю где у меня ошибка но не знаю как ее исправить. Ошибка у меня при том случае если основание и высота первого больше но второй треугольник не входит(у меня выдает что входит).

Недаюь сможете помочь. Заранее спасибо... smile.gif


--------------------
Чтобы поразить цель важна не точность, а смелость
Шарль Луи Монтескё
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

Сообщений в этой теме
Bard   задачка на геометрию   12.01.2008 4:05
Айра   т.е. примерно так выглядят треугольники: Может т…   12.01.2008 5:31
Michael_Rybak   Полное решение этой задачи - очень, очень сложное.…   12.01.2008 8:12
Bard   да именно для этой задачи :yes2: И это пробов…   12.01.2008 15:11
Michael_Rybak   Ну ок, давай попробуем. А = тот треугольник, ВНУТ…   12.01.2008 19:35
feniks25   Слушайте, а если обойтись простой логикой? Если ос…   14.01.2008 23:32
Michael_Rybak   Отлично. Теперь придумай контрпример для своего у…   14.01.2008 23:40
feniks25   Отлично. Теперь придумай контрпример для своего у…   15.01.2008 1:04
Michael_Rybak   Нет, это ты назови стороны двух треугольников. Под…   15.01.2008 1:47
feniks25   Нет, это ты назови стороны двух треугольников. По…   15.01.2008 2:12
Michael_Rybak   Я не спешу :) И автору твое сообщение не поможет.…   15.01.2008 2:17
feniks25   Ладно, сам уже нашёл. Написал бы цифры было проще.   15.01.2008 2:28
Michael_Rybak   Конечно. А если бы сдал за автора задачу на тимус…   15.01.2008 2:48
Айра   А можно мне пример? :10: Кстати, а треугольники н…   15.01.2008 3:28
Michael_Rybak   И тебе нельзя! :D Ну если правда хочешь, то…   15.01.2008 3:52
Айра   Получается тут можно попробовать как бы зеркально…   15.01.2008 4:34
Michael_Rybak   Угу. На самом деле достаточно написать одну проц…   15.01.2008 4:41
Bard   ну это мы поняли что у меня алго не работает. а …   15.01.2008 5:03
feniks25   а что если я добавлю в мою программу сравнение уг…   15.01.2008 13:23
Client   Т.е. отсортировать по величинам длин сторон? так ч…   15.01.2008 14:39
feniks25   Т.е. отсортировать по величинам длин сторон? Не…   15.01.2008 15:49
Michael_Rybak   Ну попробуй. По-моему - нельзя. Да. Но варианто…   15.01.2008 15:19
Айра   Про высоту не забываем))   15.01.2008 17:10
Гость   Про высоту не забываем)) Ну а высота то, что на…   15.01.2008 18:42
Айра   Поднимаем левую точку на 1-цу -> высоты становя…   15.01.2008 23:58
feniks25   совмещаем вершины, что напротив оснований, и о, ч…   16.01.2008 2:51
Michael_Rybak   Тогда можно основание черного уменьшить вдвое (под…   16.01.2008 3:57
Bard   Абсолютно согласен. Нам нужно найти такой алгорит…   16.01.2008 23:51
feniks25   А как можно определить на какие точки, в координа…   17.01.2008 0:33
Bard   Всем привет... Огромное спасибо всем кто принял ак…   11.08.2008 14:05


 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 





- Текстовая версия 18.04.2024 9:07
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name