На форумі обговорюються лише питання, пов'язані з олімпіадою
Ви не зайшли.
Уважаемое жюри!У меня есть притензии к задаче ПУЛ!Звучал вопрос с какой точностью нужно отвечать!Вы ответили "максимально точно"!
Я написал задачу с использованием типа екстендед:
{$A+,B-,D+,E+,F-,G-,I+,L+,N+,O-,P-,Q-,R-,S+,T-,V+,X+,Y+}
{$M 16384,0,655360}
var min,n,m,x1,y1,x2,y2:extended;
i:longint;
function dlina(a1,a2,a3: extended):extended;
begin
dlina:=sqrt(sqr(a2*a1/(a1+a3))+sqr(a1))+sqrt(sqr(a3*a2/(a1+a3))+sqr(a3));
end;
begin
read(n);
read(m);
read(x1);
read(y1);
read(x2);
read(y2);
if (x1=0)or(x2=0)or(y1=0)or(y2=0)or(x1=n)or(x2=n)or(y1=m)or(y2=m)then
begin
write(sqrt(sqr(x1-x2)+sqr(y1-y2)));
halt;
end;
min:=sqrt(n*n+m*m);
if y1<>y2 then
begin
if min>dlina(n-x1,abs(y1-y2),n-x2) then min:=dlina(n-x1,abs(y1-y2),n-x2);
if min>dlina(x1,abs(y1-y2),x2) then min:=dlina(x1,abs(y1-y2),x2);
end;
if x1<>x2 then
begin
if min>dlina(y1,abs(x1-x2),y2) then min:=dlina(y1,abs(x1-x2),y2);
if min>dlina(m-y1,abs(x1-x2),m-y2) then min:=dlina(m-y1,abs(x1-x2),m-y2);
end;
write(min);
end.
Ваша тестилка пишет:
Тест Результат Время работы
01 FAILED (Bad Data) 0.01 сек.
02 FAILED (Bad Data) 0.01 сек.
03 FAILED (Bad Data) 0.01 сек.
04 FAILED (Bad Data) 0.02 сек.
05 FAILED (Bad Data) 0.00 сек.
06 FAILED (Bad Data) 0.00 сек.
07 FAILED (Bad Data) 0.00 сек.
08 FAILED (Bad Data) 0.00 сек.
09 FAILED (Bad Data) 0.00 сек.
10 FAILED (Bad Data) 0.00 сек.
11 FAILED (Bad Data) 0.00 сек.
12 FAILED (Bad Data) 0.01 сек.
13 FAILED (Bad Data) 0.00 сек.
Прошло тестов: 0 из 13.
Набрано баллов: 0 из 20.
При том же тексте,но с реалом вместо екстендеда:
var min,n,m,x1,y1,x2,y2:real;
i:longint;
function dlina(a1,a2,a3: real):real;
begin
dlina:=sqrt(sqr(a2*a1/(a1+a3))+sqr(a1))+sqrt(sqr(a3*a2/(a1+a3))+sqr(a3));
end;
begin
read(n);
read(m);
read(x1);
read(y1);
read(x2);
read(y2);
if (x1=0)or(x2=0)or(y1=0)or(y2=0)or(x1=n)or(x2=n)or(y1=m)or(y2=m)then
begin
write(sqrt(sqr(x1-x2)+sqr(y1-y2)));
halt;
end;
min:=sqrt(n*n+m*m);
if y1<>y2 then
begin
if min>dlina(n-x1,abs(y1-y2),n-x2) then min:=dlina(n-x1,abs(y1-y2),n-x2);
if min>dlina(x1,abs(y1-y2),x2) then min:=dlina(x1,abs(y1-y2),x2);
end;
if x1<>x2 then
begin
if min>dlina(y1,abs(x1-x2),y2) then min:=dlina(y1,abs(x1-x2),y2);
if min>dlina(m-y1,abs(x1-x2),m-y2) then min:=dlina(m-y1,abs(x1-x2),m-y2);
end;
write(min);
end.
Оно проходит:
Тест Результат Время работы
01 PASSED (+1) 0.01 сек.
02 FAILED (Wrong Answer) 0.01 сек.
03 PASSED (+1) 0.01 сек.
04 PASSED (+1) 0.01 сек.
05 PASSED (+1) 0.00 сек.
06 PASSED (+1) 0.00 сек.
07 PASSED (+2) 0.00 сек.
08 PASSED (+2) 0.00 сек.
09 PASSED (+2) 0.00 сек.
10 PASSED (+2) 0.00 сек.
11 PASSED (+2) 0.00 сек.
12 PASSED (+2) 0.00 сек.
13 PASSED (+2) 0.00 сек.
Прошло тестов: 12 из 13.
Набрано баллов: 19 из 20.
Поза форумом
Можно подать аппеляцию?Прошу вас учтите эту про в следующих турах!
Поза форумом
Azazel написав:
Уважаемое жюри!У меня есть притензии к задаче ПУЛ!Звучал вопрос с какой точностью нужно отвечать!Вы ответили "максимально точно"!
Я написал задачу с использованием типа екстендед:
{$A+,B-,D+,E+,F-,G-,I+,L+,N+,O-,P-,Q-,R-,S+,T-,V+,X+,Y+}
{$M 16384,0,655360}
var min,n,m,x1,y1,x2,y2:extended;
i:longint;
function dlina(a1,a2,a3: extended):extended;
begin
dlina:=sqrt(sqr(a2*a1/(a1+a3))+sqr(a1))+sqrt(sqr(a3*a2/(a1+a3))+sqr(a3));
end;
begin
read(n);
read(m);
read(x1);
read(y1);
read(x2);
read(y2);
if (x1=0)or(x2=0)or(y1=0)or(y2=0)or(x1=n)or(x2=n)or(y1=m)or(y2=m)then
begin
write(sqrt(sqr(x1-x2)+sqr(y1-y2)));
halt;
end;
min:=sqrt(n*n+m*m);
if y1<>y2 then
begin
if min>dlina(n-x1,abs(y1-y2),n-x2) then min:=dlina(n-x1,abs(y1-y2),n-x2);
if min>dlina(x1,abs(y1-y2),x2) then min:=dlina(x1,abs(y1-y2),x2);
end;
if x1<>x2 then
begin
if min>dlina(y1,abs(x1-x2),y2) then min:=dlina(y1,abs(x1-x2),y2);
if min>dlina(m-y1,abs(x1-x2),m-y2) then min:=dlina(m-y1,abs(x1-x2),m-y2);
end;
write(min);
end.
Ваша тестилка пишет:
Тест Результат Время работы
01 FAILED (Bad Data) 0.01 сек.
02 FAILED (Bad Data) 0.01 сек.
03 FAILED (Bad Data) 0.01 сек.
04 FAILED (Bad Data) 0.02 сек.
05 FAILED (Bad Data) 0.00 сек.
06 FAILED (Bad Data) 0.00 сек.
07 FAILED (Bad Data) 0.00 сек.
08 FAILED (Bad Data) 0.00 сек.
09 FAILED (Bad Data) 0.00 сек.
10 FAILED (Bad Data) 0.00 сек.
11 FAILED (Bad Data) 0.00 сек.
12 FAILED (Bad Data) 0.01 сек.
13 FAILED (Bad Data) 0.00 сек.
Прошло тестов: 0 из 13.
Набрано баллов: 0 из 20.
При том же тексте,но с реалом вместо екстендеда:
var min,n,m,x1,y1,x2,y2:real;
i:longint;
function dlina(a1,a2,a3: real):real;
begin
dlina:=sqrt(sqr(a2*a1/(a1+a3))+sqr(a1))+sqrt(sqr(a3*a2/(a1+a3))+sqr(a3));
end;
begin
read(n);
read(m);
read(x1);
read(y1);
read(x2);
read(y2);
if (x1=0)or(x2=0)or(y1=0)or(y2=0)or(x1=n)or(x2=n)or(y1=m)or(y2=m)then
begin
write(sqrt(sqr(x1-x2)+sqr(y1-y2)));
halt;
end;
min:=sqrt(n*n+m*m);
if y1<>y2 then
begin
if min>dlina(n-x1,abs(y1-y2),n-x2) then min:=dlina(n-x1,abs(y1-y2),n-x2);
if min>dlina(x1,abs(y1-y2),x2) then min:=dlina(x1,abs(y1-y2),x2);
end;
if x1<>x2 then
begin
if min>dlina(y1,abs(x1-x2),y2) then min:=dlina(y1,abs(x1-x2),y2);
if min>dlina(m-y1,abs(x1-x2),m-y2) then min:=dlina(m-y1,abs(x1-x2),m-y2);
end;
write(min);
end.
Оно проходит:
Тест Результат Время работы
01 PASSED (+1) 0.01 сек.
02 FAILED (Wrong Answer) 0.01 сек.
03 PASSED (+1) 0.01 сек.
04 PASSED (+1) 0.01 сек.
05 PASSED (+1) 0.00 сек.
06 PASSED (+1) 0.00 сек.
07 PASSED (+2) 0.00 сек.
08 PASSED (+2) 0.00 сек.
09 PASSED (+2) 0.00 сек.
10 PASSED (+2) 0.00 сек.
11 PASSED (+2) 0.00 сек.
12 PASSED (+2) 0.00 сек.
13 PASSED (+2) 0.00 сек.
Прошло тестов: 12 из 13.
Набрано баллов: 19 из 20.
не знаю почему но проблема не в екстендеде а в {$M 16384,0,655360}
у моего друга тоже самое.
без етого пройдет все - проверь
Поза форумом
Но мне от этого ни тепло ни жарко!Жури сказали что это из-за фри паскаля(он воспринимает по-другому первые 2 строки)!А как это можно исправить?Есть какая-то аппеляция или что-то вроде этого?
Поза форумом
Вот код моего решения задачи Pool.
{N+}
program Pool;
var shir,vus,x1,x2,y1,y2,xx1,xx2,yy1,yy2,l,min,c:extended;
procedure Proc;
begin
l:=sqrt(sqr(yy2-yy1)+sqr(xx2-xx1));
if(l<min)then min:=l;
end;
begin
min:=2400111222.0;
readln(shir,vus,x1,y1,x2,y2);
xx1:=x1;
yy1:=y1;
{1}xx2:=x2;
yy2:=vus+vus-y2;
proc;
{2}xx2:=shir+shir-x2;
yy2:=y2;
proc;
{3}xx2:=x2;
yy2:=-y2;
proc;
{4}xx2:=-x2;
yy2:=y2;
proc;
writeln(min);
end.
Как видишь я использую екстендыд и у меня проходит все тесты. Проблема в чем-то другом.
Поза форумом
Проблема, по-моему, в директивах компилятору. Фри Паскаль понимает их по-другому (проверки ради зайдите в Турбо Паскаль, нажмите Ctrl+O+O, потом полученный код попробуйте скомпилировать во Фришнике).
Фришник отдельно разделяет выделение памяти под режим компилирования, дебаггера и чего-то ещё третьего(увы, не в курсе). Турбо Паскаль - нет. Поэтому директива $M у каждого имеет своё значение.
Відредаговано Skiminok (2006-10-29 17:22:40)
Поза форумом
Skiminok написав:
Проблема, по-моему, в директивах компилятору. Фри Паскаль понимает их по-другому (проверки ради зайдите в Турбо Паскаль, нажмите Ctrl+O+O, потом полученный код попробуйте скомпилировать во Фришнике).
Фришник отдельно разделяет выделение памяти под режим компилирования, дебаггера и чего-то ещё третьего(увы, не в курсе). Турбо Паскаль - нет. Поэтому директива $M у каждого имеет своё значение.
Лучше не злоупотреблять Ктрл+О+О, просто желательно знать какие директивы что значат и втыкать именно те, которые необходимы для успешного выполнения данной программы...
Поза форумом
Уважаемые жури,апелябельный ли это вопрос?Ведь задача имеет правильное решение!
Поза форумом
Значение и формат в Тубро и Фри паскале:
{$M <MAX_STACK_SIZE>,<MIN_HEAP_SIZE ?????(точно не знаю, но всегда можно ставить 0)>,<MAX_HEAP_SIZE>}
{$M 10000000,0,1000000}, если юзаете ДФС на дереве с 1000000 вершин
P.S. В Делфи не так:
{$M <MIN_STACK_SIZE>,<MAX_STACK_SIZE>}
Поза форумом
Azazel написав:
Уважаемые жури,апелябельный ли это вопрос?Ведь задача имеет правильное решение!
Я думаю, нет. Жюри на этой олимпиде, насколько я знаю, ни разу не приняло аппеляций, которые возникали из-за технических проблем у участника. Аргументацией, как я это понимаю, является то, что если участник чего-то не знает, то это его беда (была цитата Ю.Я.Пасихова о том, что если пишете на определенном языке, то вся забота о знании его технических ньюансов лежит на вас); технические условия на компиляторы и задачи пишут четко, ну и непопадание под них никто аппелировать не будет. И это будет для него учебой - чтоб в дальнейшем не допускать. Ведь эта олимпиада проводиться, как мне говорили, в основном для того, чтобы люди могли научиться, узнать новые алгоритмы (сам в прошлом году благодаря 3-му туру впервые познакомился с четырьмя новыми идеями и алгоритмами).
Я сам принципиальный в вопросах аппеляции и (<=>) разбора, откуда такие баллы, и нет ли там чего; но если досадный глюк, то лучше как можно скорее поменять свое к нему отношение и жить дальше.
Поза форумом
partisan написав:
Azazel написав:
Уважаемые жури,апелябельный ли это вопрос?Ведь задача имеет правильное решение!
Я думаю, нет. Жюри на этой олимпиде, насколько я знаю, ни разу не приняло аппеляций, которые возникали из-за технических проблем у участника. Аргументацией, как я это понимаю, является то, что если участник чего-то не знает, то это его беда (была цитата Ю.Я.Пасихова о том, что если пишете на определенном языке, то вся забота о знании его технических ньюансов лежит на вас); технические условия на компиляторы и задачи пишут четко, ну и непопадание под них никто аппелировать не будет. И это будет для него учебой - чтоб в дальнейшем не допускать. Ведь эта олимпиада проводиться, как мне говорили, в основном для того, чтобы люди могли научиться, узнать новые алгоритмы (сам в прошлом году благодаря 3-му туру впервые познакомился с четырьмя новыми идеями и алгоритмами).
Я сам принципиальный в вопросах аппеляции и (<=>) разбора, откуда такие баллы, и нет ли там чего; но если досадный глюк, то лучше как можно скорее поменять свое к нему отношение и жить дальше.
Абсолюто верная трактовка позиции жюри. Особо приятно понимание уважаемым автором последнего сообщения обучающей цели нашей олимпиады. Мы все учимся. И это очень славно!
Поза форумом