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

Обсуждение задачи 1304. Параллелепипед

I can't understand the meaning of "parallel to the datume lines" in the first sentance .
Послано XueMao 7 май 2004 06:24
The first sentance is :
Two opposite vertices of the parallelepiped A with the edges parallel to the datume lines, have coordinates (0, 0, 0) and (u, v, w) correspondingly .
What does the "parallel to the datume lines" mean ? what is datume lines ?
What does "datume" mean? And, two vertices don't determine a parallelepiped.
Послано Maigo Akisame (maigoakisame@yahoo.com.cn) 11 окт 2004 20:51
I suppose it means 'datum lines', which refer to the coordinate axes.
Послано Maigo Akisame (maigoakisame@yahoo.com.cn) 28 окт 2004 15:23
me too..........
Послано Everything 23 апр 2005 08:09
Re: I can't understand the meaning of "parallel to the datume lines" in the first sentance .
Послано Alexander Prudaev 8 мар 2006 13:55
as judged by russian text, "datume lines"
must means "axis of coordinates" ("axles of coordinates")

in another words:  (AB||oX)or(AB||oY)or(AB||oZ) - true
for any edge AB.
(AB||oX)or(AB||oY)or(AB||oZ)~(AB||{1;0;0})or(AB||{0;1;0})or(AB||{0;0;1})

|| - parallel

Edited by author 08.03.2006 14:01
plz help me.
Послано i hate my provider 19 мар 2006 21:08

WA5 many times.


Var X,Y,Z:Array[0..51]of DoubLe;
ii,jj,i,j,n:LongInt;
Ans,Ans1:DoubLe;


Procedure SWEP(Var a,b:DoubLe);
Var tmp:DoubLe;
Begin
tmp:=a;a:=b; b:=tmp;
End;

Procedure Crash;
Begin
i:=0;
i:=5 Div i;
End;


Procedure Go(x1,y1,x2,y2:DoubLe);
Var i:LongInt;
Last,S:DoubLe;
Begin
If x2<=x1 Then Crash;
If y2<=y1 Then Crash;

S:=(x2-x1)*(y2-y1);
If S*Z[n]<=Ans Then Exit;

Last:=0;
For i:=1 To N Do
 If (X[i]>x1)And(X[i]<x2)And(Y[i]>y1)And(Y[i]<y2) Then
  Begin
   If Ans<S*(Z[i]-Last) Then Ans:=S*(Z[i]-Last);
   Last:=Z[i];
   If S*(Z[n]-Last)<=Ans Then Exit;
  End;

If Ans<S*(Z[N]-Last) Then Ans:=S*(Z[N]-Last);
End;


Begin
ReadLn(X[0],Y[0],Z[0]);
ReadLn(N);
If n=0 Then Crash;
If N>50 Then Crash;
For i:=1 To N Do ReadLn(X[i],Y[i],Z[i]);

Inc(N);
X[n]:=0;Y[n]:=0;Z[n]:=0;

For i:=0 To N-1 Do
 For j:=i+1 To N Do
   If Z[i]>Z[j] Then
     Begin
      SWEP(X[i],X[j]);
      SWEP(Y[i],Y[j]);
      SWEP(Z[i],Z[j]);
     End;

Ans:=0;
For i:=0 To N Do
 For j:=0 To N Do
  For ii:=0 To N Do  If X[ii]>X[i] Then
    For jj:=0 To N Do
     If Y[jj]>Y[j] Then Go(X[i],Y[j],X[ii],Y[jj]);

Write(Ans:2:2);
End.


Please give hints or tests.