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

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

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

> задачка на геометрию, очень сложная по моему
Bard
сообщение 12.01.2008 0:05
Сообщение #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 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов
Michael_Rybak
сообщение 15.01.2008 23:57
Сообщение #2


Michael_Rybak
*****

Группа: Модераторы
Сообщений: 1 046
Пол: Мужской
Реальное имя: Michael_Rybak

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


Тогда можно основание черного уменьшить вдвое (подвинуть левую вершину до середины основания). И опять не влезет.

Что за гадания, ребята. Может, не может. Надо доказывать.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

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


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

 



- Текстовая версия 21.07.2025 21:26
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"