package Ġcode forces . round 5 7 6 Ċ Ċ fun Ġmain () Ġ{ Ċ ĉ val Ġ( n , Ġrect Num ) Ġ= Ġread Ints () Ċ ĉ val Ġrect angles Ġ= ĠArray ( rect Num ) Ġ{ Ġread Ints () Ġ} Ċ ĉ val Ġx Set Ġ= Ġmutable Set Of ( 0 , Ġn ) Ċ ĉ val Ġy Set Ġ= Ġmutable Set Of ( 0 , Ġn ) Ċ ĉ for Ġ(( x 1 , Ġy 1 , Ġx 2 , Ġy 2 ) Ġin Ġrect angles ) Ġ{ Ċĉ ĉ x Set . add ( x 1 Ġ- Ġ 1 ) Ċĉ ĉ x Set . add ( x 2 ) Ċĉ ĉ y Set . add ( y 1 Ġ- Ġ 1 ) Ċĉ ĉ y Set . add ( y 2 ) Ċ ĉ } Ċ ĉ val Ġxs Ġ= Ġx Set . sorted () Ċ ĉ val Ġys Ġ= Ġy Set . sorted () Ċ ĉ val Ġm Ġ= Ġxs . size Ġ+ Ġys . size Ġ+ Ġ 2 Ċ ĉ val Ġc Ġ= ĠArray ( m ) Ġ{ ĠInt Array ( m ) Ġ} Ċ ĉ for Ġ( i Ġin Ġ 0 Ġuntil Ġxs . size Ġ- Ġ 1 ) Ġ{ Ċĉ ĉ c [ m Ġ- Ġ 2 ][ i ] Ġ= Ġxs [ i Ġ+ Ġ 1 ] Ġ- Ġxs [ i ] Ċ ĉ } Ċ ĉ for Ġ( j Ġin Ġ 0 Ġuntil Ġys . size Ġ- Ġ 1 ) Ġ{ Ċĉ ĉ c [ xs . size Ġ+ Ġj ][ m Ġ- Ġ 1 ] Ġ= Ġys [ j Ġ+ Ġ 1 ] Ġ- Ġys [ j ] Ċ ĉ } Ċ ĉ for Ġ(( x 1 , Ġy 1 , Ġx 2 , Ġy 2 ) Ġin Ġrect angles ) Ġ{ Ċĉ ĉ for Ġ( i Ġin Ġxs . indices ) Ġ{ Ċĉĉ ĉ if Ġ(( xs [ i ] Ġ< Ġx 1 Ġ- Ġ 1 ) Ġ|| Ġ( xs [ i ] Ġ>= Ġx 2 )) Ġcontinue Ċĉĉ ĉ for Ġ( j Ġin Ġys . indices ) Ġ{ Ċĉĉĉ ĉ if Ġ(( ys [ j ] Ġ< Ġy 1 Ġ- Ġ 1 ) Ġ|| Ġ( ys [ j ] Ġ>= Ġy 2 )) Ġcontinue Ċĉĉĉ ĉ c [ i ][ xs . size Ġ+ Ġj ] Ġ= Ġmin Of ( xs [ i Ġ+ Ġ 1 ] Ġ- Ġxs [ i ], Ġys [ j Ġ+ Ġ 1 ] Ġ- Ġys [ j ]) Ċĉĉ ĉ } Ċĉ ĉ } Ċ ĉ } Ċ ĉ println ( ed mon s K arp ( c , Ġm Ġ- Ġ 2 , Ġm Ġ- Ġ 1 )) Ċ } Ċ Ċ fun Ġed mon s K arp ( c : ĠArray < IntArray >, Ġs : ĠInt , Ġt : ĠInt ): ĠInt Ġ{ Ċ ĉ val Ġn Ġ= Ġc . size Ċ ĉ val Ġf Ġ= ĠArray ( n ) Ġ{ ĠInt Array ( n ) Ġ} Ċ ĉ val Ġqueue Ġ= ĠInt Array ( n ) Ċ ĉ val Ġprev Ġ= ĠInt Array ( n ) Ċ ĉ var Ġres Ġ= Ġ 0 Ċ ĉ while Ġ( true ) Ġ{ Ċĉ ĉ queue [ 0 ] Ġ= Ġs Ċĉ ĉ var Ġlow Ġ= Ġ 0 Ċĉ ĉ var Ġhigh Ġ= Ġ 1 Ċĉ ĉ prev . fill (- 1 ) Ċĉ ĉ prev [ s ] Ġ= Ġs Ċĉ ĉ while Ġ( low Ġ< Ġhigh Ġ&& Ġprev [ t ] Ġ== Ġ- 1 ) Ġ{ Ċĉĉ ĉ val Ġv Ġ= Ġqueue [ low ] Ċĉĉ ĉ low ++ Ċĉĉ ĉ for Ġ( u Ġin Ġ 0 Ġuntil Ġn ) Ġ{ Ċĉĉĉ ĉ if Ġ( prev [ u ] Ġ!= Ġ- 1 Ġ|| Ġf [ v ][ u ] Ġ== Ġc [ v ][ u ]) Ġ{ Ċĉĉĉĉ ĉ continue Ċĉĉĉ ĉ } Ċĉĉĉ ĉ prev [ u ] Ġ= Ġv Ċĉĉĉ ĉ queue [ high ] Ġ= Ġu Ċĉĉĉ ĉ high ++ Ċĉĉ ĉ } Ċĉ ĉ } Ċĉ ĉ if Ġ( prev [ t ] Ġ== Ġ- 1 ) Ġ{ Ċĉĉ ĉ break Ċĉ ĉ } Ċĉ ĉ var Ġflow Ġ= ĠInteger . MAX _ VALUE Ġ/ Ġ 2 Ċĉ ĉ var Ġu Ġ= Ġt Ċĉ ĉ while Ġ( u Ġ!= Ġs ) Ġ{ Ċĉĉ ĉ flow Ġ= Ġmin Of ( flow , Ġc [ prev [ u ]][ u ] Ġ- Ġf [ prev [ u ]][ u ]) Ċĉĉ ĉ u Ġ= Ġprev [ u ] Ċĉ ĉ } Ċĉ ĉ u Ġ= Ġt Ċĉ ĉ while Ġ( u Ġ!= Ġs ) Ġ{ Ċĉĉ ĉ f [ prev [ u ]][ u ] Ġ+= Ġflow Ċĉĉ ĉ f [ u ][ prev [ u ]] Ġ-= Ġflow Ċĉĉ ĉ u Ġ= Ġprev [ u ] Ċĉ ĉ } Ċĉ ĉ res Ġ+= Ġflow Ċ ĉ } Ċ ĉ return Ġres Ċ } Ċ Ċ private Ġfun Ġread Ln () Ġ= Ġread Line () !! Ċ private Ġfun Ġread Strings () Ġ= Ġread Ln (). split (" Ġ") Ċ private Ġfun Ġread Ints () Ġ= Ġread Strings (). map Ġ{ Ġit . toInt () Ġ} Ċ