ENG  RUSTimus Online Judge
Online Judge
Задачи
Авторы
Соревнования
О системе
Часто задаваемые вопросы
Новости сайта
Форум
Ссылки
Архив задач
Отправить на проверку
Состояние проверки
Руководство
Регистрация
Исправить данные
Рейтинг авторов
Текущее соревнование
Расписание
Прошедшие соревнования
Правила
вернуться в форум

Обсуждение задачи 1647. Раздел острова

try this test:
Послано Victor Barinov (TNU) 25 окт 2008 21:11
Hi everybody! Please run your AC programs on this test:

0 0 1000 1 2000 0

And post you result with name of compiler you use.

Thank you!
Re: try this test:
Послано Vedernikoff Sergey (HSE: EconomicsForever!) 25 окт 2008 21:23
YES
999.999499737564410 0.999999499737564
1000.000500262685700 0.000000000000000

P.S. Compiler - VS C++. My prog got AC

Edited by author 25.10.2008 21:24
Re: try this test:
Послано Victor Barinov (TNU) 25 окт 2008 21:48
Thanks!
But it is incorrect answer. Precision is not enough. I think jury must change precision to 1e-3 or add this test and make rejudge...

Edited by author 25.10.2008 21:53
Re: try this test:
Послано Vedernikoff Sergey (HSE: EconomicsForever!) 25 окт 2008 21:53
Correct - my solution is analytical. Think why this is another correct answer but obvious "1000 0 1000 1".
Re: try this test:
Послано Victor Barinov (TNU) 25 окт 2008 21:59
It is analytical but not so exact. Actually some analytical solution can use more square root and so on and give not so exact result... If this test will be added (and some similar) than many AC solution will fail.
Re: try this test:
Послано Vedernikoff Sergey (HSE: EconomicsForever!) 25 окт 2008 22:09
What means "Not so exact"???

Perimeter of one part - 2000.0004999998749789068277343249
Perimeter of another part - 2000.0004999998750212181721875511

Area of one part - 499.9999999999997186851059078174
Area of another part - 500.0000000000002813148940921826

Don't you see some similarity in them? Up to 10^-12!
Re: try this test:
Послано Victor Barinov (TNU) 25 окт 2008 22:13
Thank you.
Now I understood that in this case we have 3 solution one of them:
1000 0 1000 1 - the median of triangle
and 2 another similar to your result.

Sorry for flood
Re: try this test:
Послано Elmurod 30 окт 2008 23:03
Victor Barinov (TNU) Help me please I choose method with median... but i have WA#2

#include <iostream>
#include <math.h>
using namespace std;
int main()
{
double x1,y1,x2,y2,x3,y3,a,b,c;
double X1,X2,Y1,Y2,X,Y,X0,Y0;
cout.precision(15);
cout.setf(ios::fixed);
cin >> x1 >> y1 >> x2 >> y2 >> x3 >> y3;
a = sqrt((double)pow(x1-x2,2)+pow(y1-y2,2));
b = sqrt((double)pow(x1-x3,2)+pow(y1-y3,2));
c = sqrt((double)pow(x2-x3,2)+pow(y2-y3,2));
// Finding big side of triangle
if (a > b && a > c)
{
X1 = x1; Y1 = y1; X2 = x2; Y2 = y2;
X0 = x3; Y0 = y3;
}
else if (b > a && b > c)
{
X1 = x1; Y1 = y1; X2 = x3; Y2 = y3;
X0 = x2; Y0 = y2;
}
else if (c > a && c > b)
{
X1 = x2; Y1 = y2; X2 = x3; Y2 = y3;
X0 = x1; Y0 = y1;
}
X = (X1 + X2) / 2; Y = (Y1 + Y2) / 2;
cout<<"YES"<<endl<<X0<<" "<<Y0<<endl;
cout<<X<<" "<<Y;
return 0;
}
Re: try this test:
Послано d6d0d1a8 1 ноя 2008 10:52
Why the segment ST can be the middle-line of the triangle.
If a is the longest edge and b is not equal with c, the solution can work out a right answer?