I wonder, why I get WA? Please, help me! My program: Program t1130;{$N+} Const MaxN=10000; Var T :array[1..MaxN,1..3]of longint; N,i,j :longint; L :extended; Ci,Cj :extended; ex :boolean; begin FillChar(T,SizeOf(T),0); Ci:=0; Cj:=0; Read(N,L); for i:=1 to N do begin Read(T[i,1],T[i,2]); T[i,3]:=1; Ci:=Ci+T[i,1]; Cj:=Cj+T[i,2]; end; Repeat ex:=true; for i:=1 to N do if T[i,3]=1 then if Sqr(Ci-2*T[i,1])+Sqr(Cj-2*T[i,2])<Ci*Ci+Cj*Cj then begin T[i,3]:=-1; Ci:=Ci-2*T[i,1]; Cj:=Cj-2*T[i,2]; ex:=false; end else if Sqr(Ci+2*T[i,1])+Sqr(Cj+2*T[i,2])<Ci*Ci+Cj*Cj then begin T[i,3]:=1; Ci:=Ci+2*T[i,1]; Cj:=Cj+2*T[i,2]; ex:=false; end; if (ex)and(Ci*Ci+Cj*Cj>2*L*L) then begin T[N,3]:=-1*T[N,3]; Ci:=Ci+2*T[N,3]*T[N,1]; Cj:=Cj+2*T[N,3]*T[N,2]; ex:=false; end; Until ex; Writeln('YES'); for i:=1 to N do if T[i,3]=1 then Write('+') else Write('-'); Writeln; end. My program is similar to yours , but I 've got accept Послано XueMao 29 июл 2002 11:58 {$n+} 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. Re: My program is similar to yours , but I 've got accept Dont believe this programm it gets TLE on test12 |