|  | 
|  | 
| вернуться в форум | Pleasy help me! I have CE!  My program works well, but it got CE!Please tell me where is my mistake.
 
 Here is my program:
 
 var n,i,j,kol,res:integer;
 a,p:array [1..1000] of integer;
 b:array [1..1000] of boolean;
 
 
 Procedure init;
 Begin
 fillchar(b,sizeof(b),false);
 readln(n);
 for i:=1 to n do read(a[i]);
 End;
 
 
 Function min(x,y:longint):longint;
 Begin
 if x<y then min:=x else min:=y
 End;
 
 
 Function max(x,y:longint):longint;
 Begin
 if x>y then max:=x else max:=y
 End;
 
 
 Function NOK_(x,y:longint):longint;
 Begin
 NOK_:=1;
 if x mod y=0 then NOK_:=x else
 
 Begin
 for i:=2 to y do
 if (x mod i=0) and (y mod i=0) then
 begin
 NOK_:=NOK_*i;
 x:=x div i;
 y:=y div i;
 end;
 NOK_:=NOK_*x*y;
 End;
 End;
 
 
 Procedure main;
 Begin
 
 For i:=1 to n do
 if not b[i] then Begin
 j:=i; kol:=0;
 
 repeat
 j:=a[j];
 b[j]:=true;
 kol:=kol+1;
 until j=i;
 
 for j:=1 to n do
 if b[j] and (p[j]=0) then p[j]:=kol;
 
 End;
 
 res:=p[1];
 for i:=2 to n do res:=NOK_(max(res,p[i]),min(res,p[i]));
 
 End;
 
 
 Procedure out;
 Begin
 write(res);
 End;
 
 
 BEGIN
 
 init;  main;  out;
 
 END.
Re: Pleasy help me! I have CE! Послано Kit  7 июл 2005 23:26Vladimir Yakovlev said "See F.A.Q.". There are said about option "Reply to my E-Mail address".
 Edited by author 07.07.2005 23:27
Re: Pleasy help me! I have CE! I've change the function NOK_:
 Function NOK_(x,y:longint):longint;
 Var tmp : longint;
 Begin
 tmp:=1;
 if x mod y=0 then tmp:=x else
 Begin
 for i:=2 to y do
 if (x mod i=0) and (y mod i=0) then
 begin
 tmp:=tmp*i;
 x:=x div i;
 y:=y div i;
 end;
 tmp:=tmp*x*y;
 End;
 NOK_:=tmp;
 End;
 
 and got WA #8. Compilation Error already no, but it is necessary to search error in your algorithm. Good luck.
Re: Pleasy help me! I have CE!  Thank you, Very much!Now it works, I changed small mistake in LCM function.
 
 | 
 | 
|