Форум Всеукраїнської інтернет-олімпіади NetOI


На форумі обговорюються лише питання, пов'язані з олімпіадою

Ви не зайшли.

#1 2006-02-06 19:38:41

partisan
Олімпієць
Звідки: Киев
Зареєстрований: 2005-11-04
Повідомлень: 180

Почему TIMELIMIT на JUMP?

Мое (Короткова Андрея) решение JUMP на базових тестах на компе, где писал очный тур, проходило за доли секунды, но в онлайне давало TL 0.1 sec. С чем это может быть связано?(У меня 0 за эту задачу).

Поза форумом

 

#2 2006-02-06 21:18:19

Журі NetOI-2005 - Пасіхов
Адміністратор
Зареєстрований: 2005-10-01
Повідомлень: 74

Re: Почему TIMELIMIT на JUMP?

partisan написав:

Мое (Короткова Андрея) решение JUMP на базових тестах на компе, где писал очный тур, проходило за доли секунды, но в онлайне давало TL 0.1 sec. С чем это может быть связано?(У меня 0 за эту задачу).

--------------------------------------------------------------------------------
КОРОТКОВУ
То, что Вы прислали, вот так проходит проверку.


        Результат перевірки
  Тест Результат Время работы
01 FAILED (Time Out) 0.12 сек.
02 FAILED (Time Out) 0.12 сек.
03 FAILED (Time Out) 0.12 сек.
04 FAILED (Time Out) 0.11 сек.
05 FAILED (Time Out) 0.13 сек.
06 FAILED (Time Out) 0.13 сек.
07 FAILED (Time Out) 0.11 сек.
08 FAILED (Time Out) 0.12 сек.
09 FAILED (Time Out) 0.12 сек.
10 FAILED (Time Out) 0.12 сек.
11 FAILED (Time Out) 0.13 сек.
12 FAILED (Time Out) 0.13 сек.
13 FAILED (Time Out) 0.12 сек.
14 FAILED (Time Out) 0.12 сек.
15 FAILED (Time Out) 0.12 сек.
16 FAILED (Time Out) 0.12 сек.
17 FAILED (Wrong Answer) 0.46 сек.
18 FAILED (Time Out) 0.52 сек.
19 FAILED (Wrong Answer) 0.53 сек.
20 FAILED (Time Out) 0.12 сек.

Прошло тестов: 0 из 20.

Набрано баллов: 0 из 100.

А вто это вы прислали.....

{$B-,R-,N+}
const
maxn=1000;
nv=65535;
g=10;
gg=g*g;
type
versh=record
  num:smallint;
  t:extended;
end;
var
h:array[1..maxn] of longint;
z,v:longint;
n,i,j,k,l,tek:smallint;
ans:extended;
a,f:array[1..maxn,1..maxn] of versh;
d:longint;
tga:extended;
function prov(a,b:smallint;tga:extended):boolean;
var
i:smallint;
y:extended;
begin
for i:=a+1 to b-1 do
  begin
   y:=tga*(i-a)-g*sqr(i-a)*(1+sqr(tga))/(2*sqr(v));
   if y<(h[i]-h[a]) then
    begin
     prov:=false;
     exit;
    end;
  end;
prov:=true;
end;
begin
fillchar(a,sizeof(a),0);
read(n,k,l);
for i:=1 to n do read(h[i]);
read(v);
if l<k then
  begin
   z:=k;
   k:=l;
   l:=z;
   for i:=1 to n div 2 do
    begin
     z:=h[i];
     h[i]:=h[n-i+1];
     h[n-i+1]:=z;
    end;
  end;
for i:=k to l do
  for j:=k to l do if j<>i then
   begin
    a[i,j].num:=maxn;
    f[i,j].num:=maxn;
   end;
for i:=k to l do
  for j:=i+1 to l do
   begin
    d:=sqr(sqr(v))*sqr(j-i)-gg*sqr(sqr(j-i))-2*g*(h[j]-h[i])*sqr(v)*sqr(j-i);
    if d>=0 then
     begin
      tga:=(sqr(v)*(j-i)-sqrt(d))/(g*sqr(j-i));
      if prov(i,j,tga) then
       begin
        a[i,j].t:=(j-i)/v*sqrt(1+sqr(tga));
        a[i,j].num:=1;
       end else
       begin
        tga:=(sqr(v)*(j-i)+sqrt(d))/(g*sqr(j-i));
        if prov(i,j,tga) then
         begin
          a[i,j].t:=(j-i)/v*sqrt(1+sqr(tga));
          a[i,j].num:=1;
         end;
       end;
     end;
   end;
for i:=k+1 to l do
  for j:=k to i-1 do
   begin
    tek:=f[k,j].num+a[j,i].num;
    if (tek<f[k,i].num)or((tek=f[k,i].num)and(f[k,j].t+a[j,i].t<f[k,i].t)) then
     begin
      f[k,i].num:=tek;
      f[k,i].t:=f[k,j].t+a[j,i].t;
     end;
   end;
if f[k,l].num<>maxn then writeln(f[k,l].num,' ',f[k,l].t) else writeln(-1,' ',-1);
end.

Поза форумом

 

Нижній колонтитул

Powered by Likt
© Copyright 2002–2009 Likt