ENG  RUS Timus Online Judge
Online Judge
Problems
Authors
Online contests
Site news
Webboard
Problem set
Submit solution
Judge status
Guide
Register
Authors ranklist
Current contest
Scheduled contests
Past contests
Rules
back to board

## Discussion of Problem 1348. Goat in the Garden 2

Why WA#25???? My alg is correct 100%!!!
Posted by Akshin Salimov 16 Apr 2005 13:48

var
a1,a2,a3,h,s,aa,bb:real;
a:array[1..3,1..2] of integer;
i,l:integer;

begin
end;

procedure writedata;
begin
if aa>=0 then
writeln(aa:0:2) else writeln('0.00');
if bb>=0 then
writeln(bb:0:2) else writeln('0.00');
end;

function d(x1,y1,x2,y2:integer):real;
begin
d:=sqrt(sqr(x1-x2)+sqr(y1-y2));
end;

procedure square;
var
p:real;
begin
a1:=d(a[1,1],a[1,2],a[2,1],a[2,2]);
a2:=d(a[3,1],a[3,2],a[2,1],a[2,2]);
a3:=d(a[1,1],a[1,2],a[3,1],a[3,2]);
p:=(a1+a2+a3)/2;
s:=sqrt(p*(p-a1)*(p-a2)*(p-a2));
end;

begin
square;
if (a[1,1]=a[2,1]) and (a[1,2]=a[2,2]) then
begin
aa:=d(a[1,1],a[1,2],a[3,1],a[3,2]);
bb:=aa;
end  else
begin
if (a1*a1+a2*a2<a3*a3) or (a2*a2+a3*a3<a1*a1) or (a1*a1+a3*a3<a2*a2) then
begin
aa:=d(a[1,1],a[1,2],a[3,1],a[3,2]);
if d(a[2,1],a[2,2],a[3,1],a[3,2])<aa
then aa:=d(a[2,1],a[2,2],a[3,1],a[3,2]);
end  else
begin
h:=d(a[1,1],a[1,2],a[2,1],a[2,2]);
aa:=s/(0.5*h);
end;

bb:=d(a[3,1],a[3,2],a[2,1],a[2,2]);
if d(a[3,1],a[3,2],a[1,1],a[1,2])>bb then
bb:=d(a[3,1],a[3,2],a[1,1],a[1,2]);
end;
aa:=aa-l;
bb:=bb-l;
writedata;
end.
Re: Why WA#25???? My alg is correct 100%!!!
Posted by Korduban [Kiev] 16 Apr 2005 19:04
Try this test:

---input
-5 0 5 0
1 0 1

---correct output
0.00
5.00
You are mistaken!
Posted by Akshin Salimov 16 Apr 2005 23:01
No, you are mistaken correct answer is
3.00
5.00

Here is explanation:

* is 0 point
A B C are points.

<-----A----*C---B----->
...

... = 3.00

I dont know how you got 0.00 , please
explain, maybe you are right.

Edited by author 16.04.2005 23:03
see+++++++++++++
Posted by Виктор Крупко 16 Apr 2005 23:21
Distance from A up to B = 0
And to get up to point A and B a cord it is necessary to extend on 5.00
Re: see+++++++++++++
Posted by Akshin Salimov 17 Apr 2005 01:59
Can we discuss this problem via e-mail?
akshinioi@yahoo.com
No subject
Posted by Akshin Salimov 17 Apr 2005 01:59

Edited by author 17.04.2005 02:15
You know Russian
Posted by Виктор Крупко 17 Apr 2005 02:03
Re: You know Russian
Posted by Akshin Salimov 17 Apr 2005 02:16
yes i know russian language.
Re: see+++++++++++++
Posted by Akshin Salimov 17 Apr 2005 02:58
" And to get up to point A and B a cord it is necessary to extend on 5.00 " - I agree with that.

But distance between A and B isnt 0, if -5+5=0 that doesnt mean that the distance equal to nil! OR explain in details how did you get this -->  "Distance from A up to B = 0 "
Posted by Korduban [Kiev] 17 Apr 2005 23:48
"... There is a bed of pineapples that he loves very much. The bed is a **line segment** with the ends A and B... "

Point C is situated on segment AB, so there are no grounds to stretch the roap - goat anyhow can eat some pine apples, even if rope has length 0. There are infinite amount of pine apples on segment! Mail me to dkorduban[at]ukr[dot]net if you still have questions.

Sorry for my English.
Need help
Posted by Akshin Salimov 19 Apr 2005 17:00
I'm sorry, I understood my mistake.
When I use linear equation for this case, i got WA#3!!!
Re: Need help
Posted by Korduban [Kiev] 20 Apr 2005 00:49
1) Read this nice article (in Russian):
http://g6prog.narod.ru/cgeom.rar

2) Completely rewrite your program. Try to create more general program, without dozens of special cases. That's general and very useful rule (imho) for geometrical problems. For example, there is only one special case in my program - when A = B.

Of course, I can send you my AC code, if you need.
Re: Why WA#25???? My alg is correct 100%!!!
Posted by Dron-elektron 7 Nov 2013 20:49
Thx for this test! WA #4 fixed now :)

Послано Korduban [Kiev] 16 апр 2005 19:04
Try this test:

---input
-5 0 5 0
1 0 1

---correct output
0.00
5.00

Edited by author 07.11.2013 20:49
Re: Why WA#25???? My alg is correct 100%!!!
Posted by adamant 22 Jan 2014 15:05
Btw, some pretty test is:
5 0 5 0
1 0 1

Correct output is
3.00 3.00