@ file : Suppress (" UNUSED _ PARAMETER ") Ċ Ċ package Ġlesson 2 . task 1 Ċ Ċ import Ġkotlinx . html . InputType Ċ import Ġlesson 1 . task 1 . dis crimin ant Ċ import Ġlesson 1 . task 1 . sqr Ċ import Ġkotlin . math .* Ċ Ċ /** Ċ Ġ* ĠÐŁ ÑĢ Ð¸Ð¼ÐµÑĢ Ċ Ġ* Ċ Ġ* ĠÐĿ Ð°Ð¹ ÑĤÐ¸ ĠÑĩ Ð¸Ñģ Ð»Ð¾ ĠÐº Ð¾ÑĢ Ð½ ÐµÐ¹ ĠÐº Ð² Ð°Ð´ ÑĢÐ°ÑĤ Ð½Ð¾Ð³Ð¾ ĠÑĥ ÑĢÐ°Ð² Ð½ ÐµÐ½Ð¸Ñı Ġax ^ 2 Ġ+ Ġbx Ġ+ Ġc Ġ= Ġ 0 Ċ Ġ*/ Ċ fun Ġquadr atic Root Number ( a : ĠDouble , Ġb : ĠDouble , Ġc : ĠDouble ): ĠInt Ġ{ ĊĠĠĠ Ġval Ġdis crimin ant Ġ= Ġdis crimin ant ( a , Ġb , Ġc ) ĊĠĠĠ Ġreturn Ġwhen Ġ{ ĊĠĠĠĠĠĠĠ Ġdis crimin ant Ġ> Ġ 0 . 0 Ġ-> Ġ 2 ĊĠĠĠĠĠĠĠ Ġdis crimin ant Ġ== Ġ 0 . 0 Ġ-> Ġ 1 ĊĠĠĠĠĠĠĠ Ġelse Ġ-> Ġ 0 ĊĠĠĠ Ġ} Ċ } Ċ Ċ /** Ċ Ġ* ĠÐŁ ÑĢ Ð¸Ð¼ÐµÑĢ Ċ Ġ* Ċ Ġ* ĠÐŁ Ð¾Ð» ÑĥÑĩ Ð¸ÑĤÑĮ ĠÑģÑĤÑĢÐ¾Ðº Ð¾Ð² ÑĥÑİ ĠÐ½ Ð¾ÑĤ Ð°ÑĨÐ¸ Ñİ ĠÐ´Ð»Ñı ĠÐ¾ ÑĨÐµÐ½ ÐºÐ¸ ĠÐ¿Ð¾ ĠÐ¿ Ñı ÑĤÐ¸ Ð± Ð°Ð» Ð»ÑĮ Ð½Ð¾Ð¹ ĠÑģÐ¸ÑģÑĤÐµÐ¼ Ðµ Ċ Ġ*/ Ċ fun Ġgrade Not ation ( grade : ĠInt ): ĠString Ġ= Ġwhen Ġ( grade ) Ġ{ ĊĠĠĠĠ 5 Ġ-> Ġ" Ð¾ÑĤ Ð»Ð¸Ñĩ Ð½Ð¾ " ĊĠĠĠĠ 4 Ġ-> Ġ" Ñħ Ð¾ÑĢ Ð¾ ÑĪ Ð¾ " ĊĠĠĠĠ 3 Ġ-> Ġ" ÑĥÐ´ Ð¾Ð² Ð» ÐµÑĤ Ð² Ð¾ÑĢ Ð¸ÑĤÐµÐ»ÑĮ Ð½Ð¾ " ĊĠĠĠĠ 2 Ġ-> Ġ" Ð½Ðµ ÑĥÐ´ Ð¾Ð² Ð» ÐµÑĤ Ð² Ð¾ÑĢ Ð¸ÑĤÐµÐ»ÑĮ Ð½Ð¾ " ĊĠĠĠ Ġelse Ġ-> Ġ" Ð½ ÐµÑģ ÑĥÑī ÐµÑģÑĤÐ² ÑĥÑİ Ñī Ð°Ñı ĠÐ¾ ÑĨÐµÐ½ ÐºÐ° Ġ$ grade " Ċ } Ċ Ċ /** Ċ Ġ* ĠÐŁ ÑĢ Ð¸Ð¼ÐµÑĢ Ċ Ġ* Ċ Ġ* ĠÐĿ Ð°Ð¹ ÑĤÐ¸ ĠÐ½Ð° Ð¸Ð¼ ÐµÐ½ÑĮ ÑĪÐ¸ Ð¹ ĠÐº Ð¾ÑĢ ÐµÐ½ÑĮ ĠÐ± Ð¸Ðº Ð² Ð°Ð´ ÑĢÐ°ÑĤ Ð½Ð¾Ð³Ð¾ ĠÑĥ ÑĢÐ°Ð² Ð½ ÐµÐ½Ð¸Ñı Ġax ^ 4 Ġ+ Ġbx ^ 2 Ġ+ Ġc Ġ= Ġ 0 Ċ Ġ*/ Ċ fun Ġmin Bi Root ( a : ĠDouble , Ġb : ĠDouble , Ġc : ĠDouble ): ĠDouble Ġ{ ĊĠĠĠ Ġ// Ġ 1 : ĠÐ² ĠÐ³ Ð» Ð°Ð² Ð½Ð¾Ð¹ ĠÐ² ÐµÑĤ ÐºÐµ Ġif ĠÐ²ÑĭÐ¿Ð¾Ð»Ð½ Ñı ÐµÑĤÑģÑı ĠÐĿ Ðķ Ð¡ Ðļ Ðŀ ÐĽ Ð ¬ Ðļ Ðŀ ĠÐ¾Ð¿ ÐµÑĢ Ð°ÑĤÐ¾ÑĢ Ð¾Ð² ĊĠĠĠ Ġif Ġ( a Ġ== Ġ 0 . 0 ) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( b Ġ== Ġ 0 . 0 ) Ġreturn ĠDouble . NaN Ġ// Ġ... ĠÐ¸ ĠÐ½ Ð¸Ñĩ ÐµÐ³Ð¾ ĠÐ± Ð¾Ð»ÑĮ ÑĪÐµ ĠÐ½Ðµ ĠÐ´ ÐµÐ» Ð°ÑĤÑĮ ĊĠĠĠĠĠĠĠ Ġval Ġbc Ġ= Ġ- c Ġ/ Ġb ĊĠĠĠĠĠĠĠ Ġif Ġ( bc Ġ< Ġ 0 . 0 ) Ġreturn ĠDouble . NaN Ġ// Ġ... ĠÐ¸ ĠÐ½ Ð¸Ñĩ ÐµÐ³Ð¾ ĠÐ± Ð¾Ð»ÑĮ ÑĪÐµ ĠÐ½Ðµ ĠÐ´ ÐµÐ» Ð°ÑĤÑĮ ĊĠĠĠĠĠĠĠ Ġreturn Ġ- sqrt ( bc ) ĊĠĠĠĠĠĠĠ Ġ// ĠÐĶ Ð°Ð»ÑĮ ÑĪÐµ ĠÑĦÑĥÐ½Ðº ÑĨÐ¸Ñı ĠÐ¿ÑĢÐ¸ Ġa Ġ== Ġ 0 . 0 ĠÐ½Ðµ ĠÐ¸ Ð´ Ñĳ ÑĤ ĊĠĠĠ Ġ} ĊĠĠĠ Ġval Ġd Ġ= Ġdis crimin ant ( a , Ġb , Ġc ) ĠĠ Ġ// Ġ 2 ĊĠĠĠ Ġif Ġ( d Ġ< Ġ 0 . 0 ) Ġreturn ĠDouble . NaN Ġ Ġ// Ġ 3 ĊĠĠĠ Ġ// Ġ 4 ĊĠĠĠ Ġval Ġy 1 Ġ= Ġ(- b Ġ+ Ġsqrt ( d )) Ġ/ Ġ( 2 Ġ* Ġa ) ĊĠĠĠ Ġval Ġy 2 Ġ= Ġ(- b Ġ- Ġsqrt ( d )) Ġ/ Ġ( 2 Ġ* Ġa ) ĊĠĠĠ Ġval Ġy 3 Ġ= Ġmax ( y 1 , Ġy 2 ) ĠĠĠĠĠĠ Ġ// Ġ 5 ĊĠĠĠ Ġif Ġ( y 3 Ġ< Ġ 0 . 0 ) Ġreturn ĠDouble . NaN Ġ// Ġ 6 ĊĠĠĠ Ġreturn Ġ- sqrt ( y 3 ) ĠĠĠĠĠĠĠĠĠĠ Ġ// Ġ 7 Ċ } Ċ Ċ /** Ċ Ġ* ĠÐŁ ÑĢ Ð¾ÑģÑĤ Ð°Ñı Ċ Ġ* Ċ Ġ* ĠÐľ Ð¾Ð¹ ĠÐ²Ð¾Ð· ÑĢÐ° ÑģÑĤ . ĠÐĶ Ð»Ñı ĠÐ·Ð°Ð´ Ð°Ð½ Ð½Ð¾Ð³Ð¾ Ġ 0 Ġ< Ġn Ġ< Ġ 2 0 0 , ĠÑĢ Ð°ÑģÑģ Ð¼ Ð°ÑĤ ÑĢ Ð¸Ð² Ð°ÐµÐ¼ Ð¾Ð³Ð¾ ĠÐºÐ°Ðº ĠÐ²Ð¾Ð· ÑĢÐ° ÑģÑĤ ĠÑĩ ÐµÐ» Ð¾Ð² ÐµÐº Ð° , Ċ Ġ* ĠÐ²ÐµÑĢ Ð½ Ñĥ ÑĤÑĮ ĠÑģÑĤÑĢÐ¾Ðº Ñĥ ĠÐ² Ð¸ Ð´Ð° : ĠÂ« 2 1 ĠÐ³ Ð¾Ð´ Â» , ĠÂ« 3 2 ĠÐ³ Ð¾Ð´Ð° Â» , ĠÂ« 1 2 ĠÐ» ÐµÑĤ Â» . Ċ Ġ*/ Ċ fun Ġage Description ( age : ĠInt ): ĠString Ġ{ ĊĠĠĠ Ġvar Ġresult Ġ= Ġ"" ĊĠĠĠ Ġif Ġ( age Ġin Ġ 1 .. 9 9 ) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( age Ġ== Ġ 1 1 Ġ|| Ġage Ġ== Ġ 1 2 Ġ|| Ġage Ġ== Ġ 1 3 Ġ|| Ġage Ġ== Ġ 1 4 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġresult Ġ= Ġ"$ age ĠÐ» ÐµÑĤ " ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġif Ġ( age Ġ== Ġ 1 Ġ|| Ġ( age Ġ% Ġ 1 0 ) Ġ== Ġ 1 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġresult Ġ= Ġ"$ age ĠÐ³ Ð¾Ð´ " ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġif Ġ( age Ġin Ġ 2 .. 4 Ġ|| Ġ( age Ġ% Ġ 1 0 ) Ġ> Ġ 1 Ġ&& Ġ( age Ġ% Ġ 1 0 ) Ġ< Ġ 5 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġresult Ġ= Ġ"$ age ĠÐ³ Ð¾Ð´Ð° " ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġresult Ġ= Ġ"$ age ĠÐ» ÐµÑĤ " ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( age Ġ== Ġ 1 1 1 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġresult Ġ= Ġ"$ age ĠÐ» ÐµÑĤ " ĊĠĠĠĠĠĠĠ Ġelse Ġif Ġ((( age Ġ% Ġ 1 0 0 ) Ġ% Ġ 1 0 ) Ġ== Ġ 1 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġresult Ġ= Ġ"$ age ĠÐ³ Ð¾Ð´ " ĊĠĠĠĠĠĠĠ Ġelse ĊĠĠĠĠĠĠĠĠĠĠĠ Ġresult Ġ= Ġ"$ age ĠÐ» ÐµÑĤ " ĊĠĠĠ Ġ} ĊĠĠĠ Ġreturn Ġresult Ċ } Ċ Ċ /** Ċ Ġ* ĠÐŁ ÑĢ Ð¾ÑģÑĤ Ð°Ñı Ċ Ġ* Ċ Ġ* ĠÐŁ ÑĥÑĤ Ð½Ð¸Ðº ĠÐ´Ð² Ð¸Ð³ Ð°Ð» ÑģÑı Ġt 1 ĠÑĩ Ð°Ñģ Ð¾Ð² ĠÑģÐ¾ ĠÑģÐº Ð¾ÑĢ Ð¾ÑģÑĤ ÑĮÑİ Ġv 1 ĠÐº Ð¼ / Ñĩ Ð°Ñģ , ĠÐ· Ð°ÑĤ ÐµÐ¼ Ġt 2 ĠÑĩ Ð°Ñģ Ð¾Ð² ĠâĢĶ ĠÑģÐ¾ ĠÑģÐº Ð¾ÑĢ Ð¾ÑģÑĤ ÑĮÑİ Ġv 2 ĠÐº Ð¼ / Ñĩ Ð°Ñģ Ċ Ġ* ĠÐ¸ Ġt 3 ĠÑĩ Ð°Ñģ Ð¾Ð² ĠâĢĶ ĠÑģÐ¾ ĠÑģÐº Ð¾ÑĢ Ð¾ÑģÑĤ ÑĮÑİ Ġv 3 ĠÐº Ð¼ / Ñĩ Ð°Ñģ . Ċ Ġ* ĠÐŀ Ð¿ ÑĢÐµÐ´ÐµÐ» Ð¸ÑĤÑĮ , ĠÐ·Ð° ĠÐºÐ°Ðº Ð¾Ðµ ĠÐ²ÑĢÐµÐ¼ Ñı ĠÐ¾ Ð½ ĠÐ¾Ð´ Ð¾Ð» ÐµÐ» ĠÐ¿ÐµÑĢ Ð² ÑĥÑİ ĠÐ¿Ð¾Ð» Ð¾Ð² Ð¸Ð½ Ñĥ ĠÐ¿ Ñĥ ÑĤÐ¸ ? Ċ Ġ*/ Ċ fun Ġtime For Half Way ( ĊĠĠĠ Ġt 1 : ĠDouble , Ġv 1 : ĠDouble , ĊĠĠĠ Ġt 2 : ĠDouble , Ġv 2 : ĠDouble , ĊĠĠĠ Ġt 3 : ĠDouble , Ġv 3 : ĠDouble Ċ ): ĠDouble Ġ{ ĊĠĠĠ Ġvar ĠS Ġ= Ġ( t 1 Ġ* Ġv 1 Ġ+ Ġt 2 Ġ* Ġv 2 Ġ+ Ġt 3 Ġ* Ġv 3 ) Ġ/ Ġ 2 ; ĊĠĠĠ Ġvar Ġtime Ġ= Ġ 0 . 0 ĊĠĠĠ Ġif Ġ(( S Ġ- Ġt 1 Ġ* Ġv 1 ) Ġ>= Ġ 0 . 0 ) Ġ{ ĊĠĠĠĠĠĠĠ ĠS Ġ-= Ġt 1 Ġ* Ġv 1 ; ĊĠĠĠĠĠĠĠ Ġtime Ġ+= Ġt 1 . toDouble (); ĊĠĠĠ Ġ} Ġelse Ġif Ġ(( S Ġ- Ġv 1 Ġ* Ġt 1 ) Ġ< Ġ 0 . 0 ) Ġ{ ĊĠĠĠĠĠĠĠ Ġtime Ġ+= ĠS Ġ/ Ġv 1 . toDouble (); ĊĠĠĠĠĠĠĠ ĠS Ġ= Ġ 0 . 0 ĊĠĠĠ Ġ} ĊĠĠĠ Ġif Ġ(( S Ġ- Ġt 2 Ġ* Ġv 2 ) Ġ>= Ġ 0 . 0 ) Ġ{ ĊĠĠĠĠĠĠĠ ĠS Ġ-= Ġt 2 Ġ* Ġv 2 ; ĊĠĠĠĠĠĠĠ Ġtime Ġ+= Ġt 2 . toDouble (); ĊĠĠĠ Ġ} Ġelse Ġif Ġ(( S Ġ- Ġt 2 Ġ* Ġv 2 ) Ġ< Ġ 0 . 0 Ġ&& Ġv 3 Ġ== Ġ 0 . 0 ) Ġ{ ĊĠĠĠĠĠĠĠ Ġtime Ġ+= ĠS Ġ/ Ġv 2 . toDouble (); ĊĠĠĠĠĠĠĠ ĠS Ġ= Ġ 0 . 0 ĊĠĠĠ Ġ} ĊĠĠĠ Ġif Ġ(( S Ġ- Ġv 3 Ġ* Ġt 3 ) Ġ>= Ġ 0 . 0 Ġ&& Ġv 3 Ġ!= Ġ 0 . 0 ) Ġ{ ĊĠĠĠĠĠĠĠ ĠS Ġ-= Ġt 3 Ġ* Ġv 3 ; ĊĠĠĠĠĠĠĠ Ġtime Ġ+= Ġt 3 . toDouble (); ĊĠĠĠ Ġ} Ġelse Ġif Ġ(( S Ġ- Ġt 3 Ġ* Ġv 3 ) Ġ< Ġ 0 . 0 ) Ġ{ ĊĠĠĠĠĠĠĠ Ġtime Ġ+= ĠS Ġ/ Ġv 3 . toDouble (); ĊĠĠĠĠĠĠĠ ĠS Ġ= Ġ 0 . 0 ĊĠĠĠ Ġ} ĊĠĠĠ Ġreturn Ġtime Ċ } Ċ Ċ /** Ċ Ġ* ĠÐŁ ÑĢ Ð¾ÑģÑĤ Ð°Ñı Ċ Ġ* Ċ Ġ* ĠÐĿ a ĠÑĪ Ð°Ñħ Ð¼ Ð°ÑĤ Ð½Ð¾Ð¹ ĠÐ´ Ð¾Ñģ ÐºÐµ ĠÑģ ÑĤÐ¾ ÑıÑĤ ĠÑĩ ÐµÑĢ Ð½ÑĭÐ¹ ĠÐº Ð¾ÑĢ Ð¾Ð»ÑĮ ĠÐ¸ ĠÐ´Ð² Ðµ ĠÐ± ÐµÐ» ÑĭÐµ ĠÐ» Ð°Ð´ ÑĮ Ð¸ Ġ( Ð» Ð°Ð´ ÑĮ Ñı ĠÐ± ÑĮ ÐµÑĤ ĠÐ¿Ð¾ ĠÐ³ Ð¾ÑĢ Ð¸Ð· Ð¾Ð½ ÑĤ Ð°Ð»Ð¸ ĠÐ¸ ĠÐ²ÐµÑĢ ÑĤÐ¸ ÐºÐ° Ð»Ð¸ ). Ċ Ġ* ĠÐŀ Ð¿ ÑĢÐµÐ´ÐµÐ» Ð¸ÑĤÑĮ , ĠÐ½Ðµ ĠÐ½Ð° ÑħÐ¾Ð´ Ð¸ÑĤ ÑģÑı ĠÐ» Ð¸ ĠÐº Ð¾ÑĢ Ð¾Ð»ÑĮ ĠÐ¿Ð¾Ð´ ĠÐ± Ð¾ ÐµÐ¼ , ĠÐ° ĠÐµÑģÐ»Ð¸ ĠÐµ ÑģÑĤÑĮ ĠÑĥ Ð³ÑĢ Ð¾Ð· Ð° , ĠÑĤÐ¾ ĠÐ¾ÑĤ ĠÐº Ð¾Ð³Ð¾ ĠÐ¸Ð¼ ÐµÐ½ Ð½Ð¾ . Ċ Ġ* ĠÐĴ ÐµÑĢ Ð½ Ñĥ ÑĤÑĮ Ġ 0 , ĠÐµÑģÐ»Ð¸ ĠÑĥ Ð³ÑĢ Ð¾Ð· Ñĭ ĠÐ½ ÐµÑĤ , Ġ 1 , ĠÐµÑģÐ»Ð¸ ĠÑĥ Ð³ÑĢ Ð¾Ð· Ð° ĠÑĤÐ¾Ð»ÑĮÐºÐ¾ ĠÐ¾ÑĤ ĠÐ¿ÐµÑĢ Ð² Ð¾Ð¹ ĠÐ» Ð°Ð´ ÑĮ Ð¸ , Ġ 2 , ĠÐµÑģÐ»Ð¸ ĠÑĤÐ¾Ð»ÑĮÐºÐ¾ ĠÐ¾ÑĤ ĠÐ² ÑĤÐ¾ÑĢ Ð¾Ð¹ ĠÐ» Ð°Ð´ ÑĮ Ð¸ , Ċ Ġ* ĠÐ¸ Ġ 3 , ĠÐµÑģÐ»Ð¸ ĠÑĥ Ð³ÑĢ Ð¾Ð· Ð° ĠÐ¾ÑĤ ĠÐ¾Ð± Ðµ Ð¸Ñħ ĠÐ» Ð°Ð´ ÐµÐ¹ . Ċ Ġ* ĠÐ¡ Ñĩ Ð¸ÑĤ Ð°ÑĤÑĮ , ĠÑĩÑĤÐ¾ ĠÐ» Ð°Ð´ ÑĮ Ð¸ ĠÐ½Ðµ ĠÐ¼ Ð¾Ð³ ÑĥÑĤ ĠÐ· Ð°Ð³ Ð¾ÑĢ Ð°Ð¶ Ð¸Ð² Ð°ÑĤÑĮ ĠÐ´ÑĢÑĥÐ³ ĠÐ´ÑĢÑĥÐ³ Ð° Ċ Ġ*/ Ċ fun Ġwhich R ook Th reat ens ( ĊĠĠĠ Ġking X : ĠInt , Ġking Y : ĠInt , ĊĠĠĠ Ġro ok X 1 : ĠInt , Ġro ok Y 1 : ĠInt , ĊĠĠĠ Ġro ok X 2 : ĠInt , Ġro ok Y 2 : ĠInt Ċ ): ĠInt Ġ{ ĊĠĠĠ Ġvar Ġresult Ġ= Ġ 0 ĊĠĠĠ Ġvar Ġresult 1 Ġ= Ġ 0 ĊĠĠĠ Ġvar Ġresult 2 Ġ= Ġ 0 ĊĠĠĠ Ġif Ġ( king X Ġ== Ġro ok X 1 Ġ|| Ġking Y Ġ== Ġro ok Y 1 ) Ġ{ ĊĠĠĠĠĠĠĠ Ġresult 1 Ġ= Ġ 1 ĊĠĠĠĠĠĠĠ Ġresult Ġ= Ġ 1 ĊĠĠĠ Ġ} ĊĠĠĠ Ġif Ġ( king X Ġ== Ġro ok X 2 Ġ|| Ġking Y Ġ== Ġro ok Y 2 ) Ġ{ ĊĠĠĠĠĠĠĠ Ġresult 2 Ġ= Ġ 2 ĊĠĠĠĠĠĠĠ Ġresult Ġ= Ġ 2 ĊĠĠĠ Ġ} ĊĠĠĠ Ġif Ġ( result 1 Ġ== Ġ 1 Ġ&& Ġresult 2 Ġ== Ġ 2 ) Ġ{ ĊĠĠĠĠĠĠĠ Ġresult Ġ= Ġ 3 ĊĠĠĠ Ġ} ĊĠĠĠ Ġreturn Ġresult Ċ } Ċ Ċ /** Ċ Ġ* ĠÐŁ ÑĢ Ð¾ÑģÑĤ Ð°Ñı Ċ Ġ* Ċ Ġ* ĠÐĿ Ð° ĠÑĪ Ð°Ñħ Ð¼ Ð°ÑĤ Ð½Ð¾Ð¹ ĠÐ´ Ð¾Ñģ ÐºÐµ ĠÑģ ÑĤÐ¾ ÑıÑĤ ĠÑĩ ÐµÑĢ Ð½ÑĭÐ¹ ĠÐº Ð¾ÑĢ Ð¾Ð»ÑĮ ĠÐ¸ ĠÐ± ÐµÐ» ÑĭÐµ ĠÐ» Ð°Ð´ ÑĮ Ñı ĠÐ¸ ĠÑģÐ» Ð¾Ð½ Ċ Ġ* Ġ( Ð» Ð°Ð´ ÑĮ Ñı ĠÐ± ÑĮ ÐµÑĤ ĠÐ¿Ð¾ ĠÐ³ Ð¾ÑĢ Ð¸Ð· Ð¾Ð½ ÑĤ Ð°Ð»Ð¸ ĠÐ¸ ĠÐ²ÐµÑĢ ÑĤÐ¸ ÐºÐ° Ð»Ð¸ , ĠÑģÐ» Ð¾Ð½ ĠâĢĶ ĠÐ¿Ð¾ ĠÐ´ Ð¸ Ð°Ð³ Ð¾Ð½ Ð° Ð»Ñı Ð¼ ). Ċ Ġ* ĠÐŁ ÑĢÐ¾Ð² ÐµÑĢ Ð¸ÑĤÑĮ , ĠÐµ ÑģÑĤÑĮ ĠÐ» Ð¸ ĠÑĥ Ð³ÑĢ Ð¾Ð· Ð° ĠÐº Ð¾ÑĢ Ð¾Ð» Ñİ ĠÐ¸ ĠÐµÑģÐ»Ð¸ ĠÐµ ÑģÑĤÑĮ , ĠÑĤÐ¾ ĠÐ¾ÑĤ ĠÐº Ð¾Ð³Ð¾ ĠÐ¸Ð¼ ÐµÐ½ Ð½Ð¾ . Ċ Ġ* ĠÐĴ ÐµÑĢ Ð½ Ñĥ ÑĤÑĮ Ġ 0 , ĠÐµÑģÐ»Ð¸ ĠÑĥ Ð³ÑĢ Ð¾Ð· Ñĭ ĠÐ½ ÐµÑĤ , Ġ 1 , ĠÐµÑģÐ»Ð¸ ĠÑĥ Ð³ÑĢ Ð¾Ð· Ð° ĠÑĤÐ¾Ð»ÑĮÐºÐ¾ ĠÐ¾ÑĤ ĠÐ» Ð°Ð´ ÑĮ Ð¸ , Ġ 2 , ĠÐµÑģÐ»Ð¸ ĠÑĤÐ¾Ð»ÑĮÐºÐ¾ ĠÐ¾ÑĤ ĠÑģÐ» Ð¾Ð½ Ð° , Ċ Ġ* ĠÐ¸ Ġ 3 , ĠÐµÑģÐ»Ð¸ ĠÑĥ Ð³ÑĢ Ð¾Ð· Ð° ĠÐµ ÑģÑĤÑĮ ĠÐ¸ ĠÐ¾ÑĤ ĠÐ» Ð°Ð´ ÑĮ Ð¸ ĠÐ¸ ĠÐ¾ÑĤ ĠÑģÐ» Ð¾Ð½ Ð° . Ċ Ġ* ĠÐ¡ Ñĩ Ð¸ÑĤ Ð°ÑĤÑĮ , ĠÑĩÑĤÐ¾ ĠÐ» Ð°Ð´ ÑĮ Ñı ĠÐ¸ ĠÑģÐ» Ð¾Ð½ ĠÐ½Ðµ ĠÐ¼ Ð¾Ð³ ÑĥÑĤ ĠÐ· Ð°Ð³ Ð¾ÑĢ Ð°Ð¶ Ð¸Ð² Ð°ÑĤÑĮ ĠÐ´ÑĢÑĥÐ³ ĠÐ´ÑĢÑĥÐ³ Ð° . Ċ Ġ*/ Ċ fun Ġro ok Or B ish op Th reat ens ( ĊĠĠĠ Ġking X : ĠInt , Ġking Y : ĠInt , ĊĠĠĠ Ġro ok X : ĠInt , Ġro ok Y : ĠInt , ĊĠĠĠ Ġb ish op X : ĠInt , Ġb ish op Y : ĠInt Ċ ): ĠInt Ġ{ ĊĠĠĠ Ġvar Ġresult Ġ= Ġ 0 ĊĠĠĠ Ġvar Ġresult 1 Ġ= Ġ 0 ĊĠĠĠ Ġvar Ġresult 2 Ġ= Ġ 0 ĊĠĠĠ Ġif Ġ( king X Ġ== Ġro ok X Ġ|| Ġking Y Ġ== Ġro ok Y ) Ġ{ ĊĠĠĠĠĠĠĠ Ġresult 1 Ġ= Ġ 1 ĊĠĠĠĠĠĠĠ Ġresult Ġ= Ġ 1 ĊĠĠĠ Ġ} ĊĠĠĠ Ġif Ġ( abs ( king X Ġ- Ġb ish op X ) Ġ== Ġabs ( king Y Ġ- Ġb ish op Y )) Ġ{ ĊĠĠĠĠĠĠĠ Ġresult 2 Ġ= Ġ 2 ĊĠĠĠĠĠĠĠ Ġresult Ġ= Ġ 2 ĊĠĠĠ Ġ} ĊĠĠĠ Ġif Ġ( result 1 Ġ== Ġ 1 Ġ&& Ġresult 2 Ġ== Ġ 2 ) Ġ{ ĊĠĠĠĠĠĠĠ Ġresult Ġ= Ġ 3 ĊĠĠĠ Ġ} ĊĠĠĠ Ġreturn Ġresult Ċ } Ċ Ċ /** Ċ Ġ* ĠÐŁ ÑĢ Ð¾ÑģÑĤ Ð°Ñı Ċ Ġ* Ċ Ġ* ĠÐ¢ ÑĢ Ðµ Ñĥ Ð³ Ð¾Ð»ÑĮ Ð½Ð¸Ðº ĠÐ·Ð°Ð´ Ð°Ð½ ĠÐ´ Ð»Ð¸ Ð½ Ð°Ð¼Ð¸ ĠÑģÐ² Ð¾ Ð¸Ñħ ĠÑģÑĤ Ð¾ÑĢ Ð¾Ð½ Ġa , Ġb , Ġc . Ċ Ġ* ĠÐŁ ÑĢÐ¾Ð² ÐµÑĢ Ð¸ÑĤÑĮ , ĠÑı Ð²Ð»Ñı ÐµÑĤÑģÑı ĠÐ» Ð¸ ĠÐ´Ð°Ð½ Ð½ÑĭÐ¹ ĠÑĤÑĢ Ðµ Ñĥ Ð³ Ð¾Ð»ÑĮ Ð½Ð¸Ðº ĠÐ¾ ÑģÑĤ ÑĢÐ¾ Ñĥ Ð³ Ð¾Ð»ÑĮ Ð½ÑĭÐ¼ Ġ( Ð²ÐµÑĢ Ð½ Ñĥ ÑĤÑĮ Ġ 0 ), Ċ Ġ* ĠÐ¿ÑĢ Ñı Ð¼ Ð¾ Ñĥ Ð³ Ð¾Ð»ÑĮ Ð½ÑĭÐ¼ Ġ( Ð²ÐµÑĢ Ð½ Ñĥ ÑĤÑĮ Ġ 1 ) ĠÐ¸Ð»Ð¸ ĠÑĤ ÑĥÐ¿ Ð¾ Ñĥ Ð³ Ð¾Ð»ÑĮ Ð½ÑĭÐ¼ Ġ( Ð²ÐµÑĢ Ð½ Ñĥ ÑĤÑĮ Ġ 2 ). Ċ Ġ* ĠÐķÑģÐ»Ð¸ ĠÑĤÐ°Ðº Ð¾Ð¹ ĠÑĤÑĢ Ðµ Ñĥ Ð³ Ð¾Ð»ÑĮ Ð½Ð¸Ðº ĠÐ½Ðµ ĠÑģ ÑĥÑī ÐµÑģÑĤÐ² ÑĥÐµÑĤ , ĠÐ²ÐµÑĢ Ð½ Ñĥ ÑĤÑĮ Ġ- 1 . Ċ Ġ*/ Ċ fun Ġtriangle Kind ( a : ĠDouble , Ġb : ĠDouble , Ġc : ĠDouble ): ĠInt Ġ{ ĊĠĠĠ Ġvar Ġresult Ġ= Ġ 0 ĊĠĠĠ Ġvar Ġa 1 Ġ= Ġ 0 . 0 ĊĠĠĠ Ġvar Ġb 1 Ġ= Ġ 0 . 0 ĊĠĠĠ Ġvar Ġc 1 Ġ= Ġ 0 . 0 ĊĠĠĠ Ġif Ġ( a Ġ> Ġc Ġ|| Ġb Ġ> Ġc ) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( b Ġ> Ġc Ġ&& Ġa Ġ< Ġb ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġa 1 Ġ= Ġa ĊĠĠĠĠĠĠĠĠĠĠĠ Ġb 1 Ġ= Ġc ĊĠĠĠĠĠĠĠĠĠĠĠ Ġc 1 Ġ= Ġb ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġa 1 Ġ= Ġc ĊĠĠĠĠĠĠĠĠĠĠĠ Ġb 1 Ġ= Ġb ĊĠĠĠĠĠĠĠĠĠĠĠ Ġc 1 Ġ= Ġa ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠ Ġa 1 Ġ= Ġa ĊĠĠĠĠĠĠĠ Ġb 1 Ġ= Ġb ĊĠĠĠĠĠĠĠ Ġc 1 Ġ= Ġc ĊĠĠĠ Ġ} ĊĠĠĠ Ġif Ġ(( a 1 Ġ+ Ġb 1 ) Ġ> Ġc 1 Ġ&& Ġ( a 1 Ġ+ Ġc 1 ) Ġ> Ġb 1 Ġ&& Ġ( b 1 Ġ+ Ġc 1 ) Ġ> Ġa 1 ) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ(( a 1 Ġ* Ġa 1 Ġ+ Ġb 1 Ġ* Ġb 1 ) Ġ== Ġ( c 1 Ġ* Ġc 1 )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġresult Ġ= Ġ 1 ; ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġif Ġ(( a 1 Ġ* Ġa 1 Ġ+ Ġb 1 Ġ* Ġb 1 ) Ġ> Ġ( c 1 Ġ* Ġc 1 )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġresult Ġ= Ġ 0 ; ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġif Ġ(( a 1 Ġ* Ġa 1 Ġ+ Ġb 1 Ġ* Ġb 1 ) Ġ< Ġ( c 1 Ġ* Ġc 1 )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġresult Ġ= Ġ 2 ; ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠ Ġresult Ġ= Ġ- 1 ĊĠĠĠ Ġ} ĊĠĠĠ Ġreturn Ġresult Ċ } Ċ Ċ /** Ċ Ġ* ĠÐ¡ ÑĢÐµÐ´ Ð½Ñı Ñı Ċ Ġ* Ċ Ġ* ĠÐĶ Ð°Ð½ Ñĭ ĠÑĩ ÐµÑĤ Ñĭ ÑĢ Ðµ ĠÑĤ Ð¾Ñĩ ÐºÐ¸ ĠÐ½Ð° ĠÐ¾Ð´ Ð½Ð¾Ð¹ ĠÐ¿ÑĢ Ñı Ð¼ Ð¾Ð¹ : ĠA , ĠB , ĠC ĠÐ¸ ĠD . Ċ Ġ* ĠÐļ Ð¾ Ð¾ÑĢ Ð´ Ð¸Ð½ Ð°ÑĤ Ñĭ ĠÑĤ Ð¾Ñĩ ÐµÐº Ġa , Ġb , Ġc , Ġd ĠÑģÐ¾ Ð¾ÑĤ Ð²ÐµÑĤ ÑģÑĤÐ² ÐµÐ½ Ð½Ð¾ , Ġb Ġ>= Ġa , Ġd Ġ>= Ġc . Ċ Ġ* ĠÐĿ Ð°Ð¹ ÑĤÐ¸ ĠÐ´ Ð»Ð¸ Ð½ Ñĥ ĠÐ¿ÐµÑĢ ÐµÑģ ÐµÑĩ ÐµÐ½Ð¸Ñı ĠÐ¾ÑĤ ÑĢ ÐµÐ· ÐºÐ¾Ð² ĠAB ĠÐ¸ ĠCD . Ċ Ġ* ĠÐķÑģÐ»Ð¸ ĠÐ¿ÐµÑĢ ÐµÑģ ÐµÑĩ ÐµÐ½Ð¸Ñı ĠÐ½ ÐµÑĤ , ĠÐ²ÐµÑĢ Ð½ Ñĥ ÑĤÑĮ Ġ- 1 . Ċ Ġ*/ Ċ fun Ġsegment Length ( a : ĠInt , Ġb : ĠInt , Ġc : ĠInt , Ġd : ĠInt ): ĠInt Ġ{ ĊĠĠĠ Ġvar Ġresult Ġ= Ġ 0 ĊĠĠĠ Ġif Ġ( a Ġ< Ġc Ġ&& Ġb Ġ< Ġd ) Ġ{ ĊĠĠĠĠĠĠĠ Ġresult Ġ= Ġb Ġ- Ġc ĊĠĠĠ Ġ} Ġelse Ġif Ġ( a Ġ> Ġc Ġ&& Ġb Ġ> Ġd ) Ġ{ ĊĠĠĠĠĠĠĠ Ġresult Ġ= Ġd Ġ- Ġa ĊĠĠĠ Ġ} Ġelse Ġif Ġ( c Ġ< Ġa Ġ&& Ġb Ġ< Ġd ) Ġ{ ĊĠĠĠĠĠĠĠ Ġresult Ġ= Ġb Ġ- Ġa ĊĠĠĠ Ġ} Ġelse Ġif Ġ( a Ġ< Ġc Ġ&& Ġb Ġ> Ġd ) Ġ{ ĊĠĠĠĠĠĠĠ Ġresult Ġ= Ġd Ġ- Ġc ĊĠĠĠ Ġ} Ġelse Ġif Ġ( a Ġ== Ġc Ġ&& Ġb Ġ> Ġa Ġ&& Ġd Ġ> Ġa ) Ġ{ ĊĠĠĠĠĠĠĠ Ġresult Ġ= Ġmin ( abs ( b Ġ- Ġa ), Ġabs ( d Ġ- Ġa )) ĊĠĠĠ Ġ} Ġelse Ġif Ġ( d Ġ== Ġb Ġ&& Ġa Ġ< Ġb Ġ&& Ġc Ġ< Ġb ) Ġ{ ĊĠĠĠĠĠĠĠ Ġresult Ġ= Ġmin ( abs ( a Ġ- Ġb ), Ġabs ( c Ġ- Ġb )) ĊĠĠĠ Ġ} ĊĠĠĠ Ġif Ġ( result Ġ< Ġ 0 ) Ġ{ ĊĠĠĠĠĠĠĠ Ġresult Ġ= Ġ- 1 ĊĠĠĠ Ġ} ĊĠĠĠ Ġreturn Ġresult Ċ } Ċ