1130.pas

来自「平时acm训练时ac的源代码」· PAS 代码 · 共 38 行

PAS
38
字号
Program Walk;

Var i,j,k,m,n,bj:longint;
    x,y,z:double;
    a:array[1..10001,1..2] of integer;
    e:array[1..10001] of shortint;

Begin
  fillchar(a,sizeof(a),0);
  fillchar(e,sizeof(e),0);
  read(n);
  read(z);
  x:=0;
  y:=0;
  for i:=1 to n do
  begin
    e[i]:=1;
    read(a[i,1],a[i,2]);
    x:=x+a[i,1];
    y:=y+a[i,2];
  end;
  while x*x+y*y-2*z*z>1e-14 do
  begin
    for i:=1 to n do
    if sqrt(x*x+y*y)-sqrt(sqr(x-2*a[i,1]*e[i])+sqr(y-2*a[i,2]*e[i]))>1e-14 then
    begin
      x:=x-2*a[i,1]*e[i];
      y:=y-2*a[i,2]*e[i];
      e[i]:=-e[i];
      if 2*z*z-x*x-y*y>1e-14 then break;
    end;
  end;
  writeln('YES');
  for i:=1 to n do
  if e[i]=-1 then write('-')
  else write('+');
  writeln;
End.

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?