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 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов
Bard
сообщение 12.01.2008 11:11
Сообщение #2


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

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

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


Цитата
p.s. так вот для чего была нужна формула)))

да именно для этой задачи yes2.gif

Цитата
Может тогда нужно все высоты сравнивать на больше меньше (посмотри на их длины на рисунке).. Но не уверена, ибо с геометрией у меня туго..

И это пробовал не помогает. Кстати у меня в проге остались следы(я нашел высоты других сторон но не использовал mega_chok.gif )...

Цитата
Полное решение этой задачи - очень, очень сложное. Честное слово .Ну не то чтобы очень сложное, но очень громоздкое.


Ну про сложность я потом узнал. Всего 30 людей решили примерно 5% norespect.gif . Это конечно же очень мало. Ну просто захотелось стать одним из них. И щас хочу rolleyes.gif

Цитата
Для начала - ты можешь доказать, что если решение существует, то его всегда можно достичь, совместив максимальную сторону первого треугольника с частью максимальной стороны второго? Или даже вообще любые две стороны, не обязательно максимальные?


Нет не могу. Просто это было первое что пришло мне в голову. Но помоему если доработать мою программу то может и получиться wink.gif . Ведь я же знаю где у меня ошибка(ну я не говорю что она единственная:wacko:...)
Кстати да решение всегда существует или входит или нет lol.gif


P.S. Ну хотя бы можете подсказать как мне исправить ту ошибку blum.gif


--------------------
Чтобы поразить цель важна не точность, а смелость
Шарль Луи Монтескё
 Оффлайн  Профиль  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:12
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"