ENG  RUSTimus Online Judge
Online Judge
Problems
Authors
Online contests
About Online Judge
Frequently asked questions
Site news
Webboard
Links
Problem set
Submit solution
Judge status
Guide
Register
Update your info
Authors ranklist
Current contest
Scheduled contests
Past contests
Rules
back to board

Discussion of Problem 1304. Parallelepiped

I can't understand the meaning of "parallel to the datume lines" in the first sentance .
Posted by XueMao 7 May 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.
Posted by Maigo Akisame (maigoakisame@yahoo.com.cn) 11 Oct 2004 20:51
I suppose it means 'datum lines', which refer to the coordinate axes.
Posted by Maigo Akisame (maigoakisame@yahoo.com.cn) 28 Oct 2004 15:23
me too..........
Posted by Everything 23 Apr 2005 08:09
Re: I can't understand the meaning of "parallel to the datume lines" in the first sentance .
Posted by Alexander Prudaev 8 Mar 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.
Posted by i hate my provider 19 Mar 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.