Cod sursa(job #127324)

Utilizator philip_dugalleHadczy-Pop Filip philip_dugalle Data 23 ianuarie 2008 19:05:53
Problema Inundatii Scor 0
Compilator fpc Status done
Runda Arhiva de probleme Marime 1.04 kb
var n,i,lx,ly,lz,rx,ry,rz:word;
    dx,dy,dz,sx,sy,sz,x,y,z:longint;
    f,g:text;

begin
 assign(f,'inundatii.in');
 assign(g,'inundatii.out');
 reset(f);
 rewrite(g);
 readln(f,n);
 for i:=1 to n do begin
  readln(f,x,y,z);
  sx:=sx+x;
  sy:=sy+y;
  sz:=sz+z;
 end;
 sx:=round(sx/n);
 sy:=round(sy/n);
 sz:=round(sz/n);
 close(f);
 reset(f);
 readln(f);
 for i:=1 to n do begin
  readln(f,x,y,z);
  dx:=dx+abs(sx-x);
  dy:=dy+abs(sy-y);
  dz:=dz+abs(sz-z);
  if x>sx then rx:=rx+1
          else if x<sx then lx:=lx+1;
  if y>sy then ry:=ry+1
          else if y<sy then ly:=ly+1;
  if z>sz then rz:=rz+1
          else if z<sz then lz:=lz+1;
 end;
 dx:=dx+round(((1+rx)*rx)/2)+round(((1+lx)*lx)/2);
 if lx+rx=n then if rx>lx then dx:=dx-rx else dx:=dx-lx;
 dy:=dy+round(((1+ry)*ry)/2)+round(((1+ly)*ly)/2);
 if ly+ry=n then if ry>ly then dy:=dy-ry else dy:=dy-ly;
 dz:=dz+round(((1+rz)*rz)/2)+round(((1+lz)*lz)/2);
 if lz+rz=n then if rz>lz then dz:=dz-rz else dz:=dz-lz;
 writeln(g,dx+dy+dz);
 close(f);
 close(g);
end.