
рдЬреИрд╕рд╛ рдХрд┐ рдпрд╣ рдЙрди рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдЬрд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬреЛ рдПрдХ рдорд╣реАрдиреЗ рд╕реЗ рдЕрдзрд┐рдХ рд╕рдордп рд╕реЗ рдкрд╣рд▓реЗ, рдПрдмреАрдмреАрд╡рд╛рдИ рдХрдк, рдЫрд╛рддреНрд░ рдХреА рдСрдирд▓рд╛рдЗрди рдЦреЗрд▓ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рдУрд▓рдВрдкрд┐рдпрд╛рдб рдЖрдпреЛрдЬрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред рдЙрди рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдЬрд┐рдиреНрд╣реЛрдВрдиреЗ рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреБрдЫ рднреА рдирд╣реАрдВ рд╕реБрдирд╛ рд╣реИ, рдореИрдВ рд╕реБрдЭрд╛рд╡ рджреЗрддрд╛ рд╣реВрдВ рдХрд┐ рдЖрдк
рдЗрд╕ рд╡рд┐рд╖рдп рдХреЛ рдкрд╣рд▓реЗ рдкрдврд╝реЗрдВред
рдкреНрд░рддреНрдпреЗрдХ рджреМрд░ рдореЗрдВ, рд╣рдордиреЗ рдкреНрд░рддрд┐рднрд╛рдЧрд┐рдпреЛрдВ рдХреЛ 6 рдХрд╛рд░реНрдпреЛрдВ рдХреА рдкреЗрд╢рдХрд╢ рдХреА, рдкреНрд░рддреНрдпреЗрдХ рдХреЛ 100 рдЕрдВрдХ рдорд┐рд▓ рд╕рдХрддреЗ рдереЗ, рд▓реЗрдХрд┐рди рдкреНрд░рдХрд╛рд╢ рд╡рд┐рднрд╛рдЧ рдХреЗ рд▓рд┐рдП рдХреЛрдбрдлреЛрд░реНрд╕ рдиреЗ рдЙрди рдкреНрд░рддрд┐рднрд╛рдЧрд┐рдпреЛрдВ рдХреЗ рдордиреЛрд░рдВрдЬрди рдХреЗ рд▓рд┐рдП рдПрдХ рдЕрддрд┐рд░рд┐рдХреНрдд рд╕рд╛рддрд╡реЗрдВ рдХреА рд░рдЪрдирд╛ рдХреА, рдЬреЛ рдкреНрд░рдХрд╛рд╢ рд╡рд┐рднрд╛рдЬрди рдХреЛ рдмрд╣реБрдд рд╣рд▓реНрдХрд╛ рд╕рдордЭрдиреЗ рд▓рдЧреЗ рд╣реИрдВред
рдкрд┐рдЫрд▓реЗ рд╡рд░реНрд╖ рдХреА рддрд░рд╣, рд╡рд┐рднрд┐рдиреНрди рдХрдард┐рдирд╛рдИ рд╕реНрддрд░реЛрдВ рдХреЗ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдкрд░реАрдХреНрд╖рдгреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдирд┐рд░реНрдгрдпреЛрдВ рдХрд╛ рдореВрд▓реНрдпрд╛рдВрдХрди рдХрд┐рдпрд╛ рдЧрдпрд╛ред рдПрдмреАрдмреАрд╡рд╛рдИ рдХрдк рдореЗрдВ рдХрдИ рдкрд░реАрдХреНрд╖рдг рд╕рдореВрд╣ рдереЗ, рджреЛ рд╣рд▓реНрдХреЗ рдбрд┐рд╡реАрдЬрди рдореЗрдВ рдФрд░ рддреАрди рдХрдард┐рди рдбрд┐рд╡реАрдЬрди рдореЗрдВред рдЙрди рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рдЕрд▓рдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╡рд┐рднрд┐рдиреНрди рдкрд░реАрдХреНрд╖рдгреЛрдВ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ, рдЬрд┐рдиреНрд╣реЛрдВрдиреЗ рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рдХрд╛рдо рдХрд┐рдпрд╛ рд╣реИред рдХреНрдпрд╛ 20 рдЗрдирдкреБрдЯ рдореВрд▓реНрдпреЛрдВ рдХреЗ рд╕рд╛рде рджрд┐рдП рдЧрдП рдврд╛рдВрдЪреЗ рдореЗрдВ рдХреЛрдб рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ? рдкреНрд░рд╡реЗрд╢ рджреНрд╡рд╛рд░ рдкрд░ 50 рдЬрд╛рдУ, рдЪрд▓реЛ рджреЗрдЦрддреЗ рд╣реИрдВ :)
рдЗрд╕рдХреЗ рдЕрддрд┐рд░рд┐рдХреНрдд, рдПрдХ рдЕрддрд┐рд░рд┐рдХреНрдд рдореВрд▓реНрдпрд╛рдВрдХрди рдкреНрд░рдгрд╛рд▓реА рдереАред рдЕрдЧрд░ рдХрд┐рд╕реА рд╡реНрдпрдХреНрддрд┐ рдиреЗ рдХрдИ рдмрд╛рд░ рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХреА рдФрд░ рдХрд╣рд╛, 10 рдмрд╛рд░ рдЧрд▓рдд рд╕рдорд╛рдзрд╛рди рднреЗрдЬрд╛ рдФрд░ 11 рд╡реЗрдВ рдкрд░ рд╕рд╣реА рднреЗрдЬрд╛, рддреЛ рд╡рд╣ рд░реИрдВрдХрд┐рдВрдЧ рдореЗрдВ рдЙрд╕ рд╡реНрдпрдХреНрддрд┐ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдХрдо рд╣реЛрдЧрд╛ рдЬрд┐рд╕рдиреЗ рд▓рдВрдмреЗ рд╕рдордп рддрдХ рд╣рд▓ рдХрд┐рдпрд╛ рдерд╛, рд▓реЗрдХрд┐рди рдПрдХ рд╕рдорд╛рдзрд╛рди рднреЗрдЬрд╛ рдЬреЛ рддреБрд░рдВрдд рд╕рднреА рдкрд░реАрдХреНрд╖рдгреЛрдВ рдХреЛ рдкрд╛рд░рд┐рдд рдХрд░ рджрд┐рдпрд╛ред
рдкреНрд░рддрд┐рдирд┐рдзрд┐ рдирдореВрдирд╛
рдЯрд╛рд╕реНрдХ рдХреА рд╕реНрдерд┐рддрд┐ABBYY рдХреЗ рдЪрд╛рд▓рд╛рдХ рдмреАрд╡рд░ рд▓рдВрдмреЗ рд╕рдордп рд╕реЗ рд░рд┐рд╕рд░реНрдЪ рдЗрдВрд╕реНрдЯреАрдЯреНрдпреВрдЯ рдСрдл рд╕рд╛рдЗрдЯреЛрд▓реЙрдЬреА рдПрдВрдб рдЬреЗрдиреЗрдЯрд┐рдХреНрд╕ рдореЗрдВ рд╕рд╣рдпреЛрдЧ рдХрд░ рд░рд╣реЗ рд╣реИрдВред рд╣рд╛рд▓ рд╣реА рдореЗрдВ, рдЗрд╕ рд╢реЛрдз рд╕рдВрд╕реНрдерд╛рди рдХреЗ рдХрд░реНрдордЪрд╛рд░рд┐рдпреЛрдВ рдиреЗ рдмреЗрд╡рд░ рдХреЛ рдПрдХ рдирдпрд╛ рдХрд╛рд░реНрдп рдХрд░рдиреЗ рдХреА рдкреЗрд╢рдХрд╢ рдХреАред рд╕рдорд╕реНрдпрд╛ рдХрд╛ рд╕рд╛рд░ рдЗрд╕ рдкреНрд░рдХрд╛рд░ рдерд╛ред
рдПрди рдкреНрд░реЛрдЯреАрди рдХрд╛ рдПрдХ рд╕реЗрдЯ рд╣реИ (рдЬрд░реВрд░реА рдирд╣реАрдВ рдХрд┐ рдЕрд▓рдЧ рд╣реЛ)ред рдкреНрд░рддреНрдпреЗрдХ рдЧрд┐рд▓рд╣рд░реА рдПрдХ рддрд╛рд░ рд╣реИ рдЬрд┐рд╕рдореЗрдВ рд▓реИрдЯрд┐рди рд╡рд░реНрдгрдорд╛рд▓рд╛ рдХреЗ рдЫреЛрдЯреЗ рдЕрдХреНрд╖рд░ рд╣реЛрддреЗ рд╣реИрдВред рд╕реНрдорд╛рд░реНрдЯ рдмреАрд╡рд░ рдХреЗ рд╡реИрдЬреНрдЮрд╛рдирд┐рдХреЛрдВ рджреНрд╡рд╛рд░рд╛ рдЪреБрдиреМрддреА рджреА рдЧрдИ рд╣реИ рдХрд┐ рдкреНрд░реЛрдЯреАрди рдХреЗ рдореВрд▓ рд╕реЗрдЯ рд╕реЗ рдкрд╛рд╡рд░
k рдХрд╛ рд╕рдмрд╕реЗрдЯ рдЪреБрдиреЗрдВ рдФрд░ рдкреНрд░реЛрдЯреАрди рдХреЗ рдЪреБрдиреЗ рд╣реБрдП рд╕рдмрд╕реЗрдЯ рдХрд╛ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдЕрдзрд┐рдХрддрдо рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред
ABBYY рдХреЗ рдЪрддреБрд░ рдмреАрд╡рд░ рдиреЗ рдПрдХ рдЫреЛрдЯрд╛ рдЕрдзреНрдпрдпрди рдХрд┐рдпрд╛ рдФрд░ рдЗрд╕ рдирд┐рд╖реНрдХрд░реНрд╖ рдкрд░ рдкрд╣реБрдВрдЪреЗ рдХрд┐ рдкреНрд░реЛрдЯреАрди рдХреЗ рдПрдХ рд╕рдореВрд╣ рдХреА рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡рд╢реАрд▓рддрд╛ рдХрд╛ рдореВрд▓реНрдпрд╛рдВрдХрди рдПрдХ рд╣реА рд╕рдВрдЦреНрдпрд╛ рдХреЗ рд╕рд╛рде рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдЬрд┐рд╕рдХреА рдЧрдгрдирд╛ рдХрд░рдирд╛ рдХрд╛рдлреА рд╕рд░рд▓ рд╣реИред рдорд╛рди рд▓реАрдЬрд┐рдП рдХрд┐ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдкреНрд░реЛрдЯреАрдиреЛрдВ рдХрд╛ рд╡рд░реНрдгрди рдХрд░рдиреЗ рд╡рд╛рд▓реА
k рд▓рд╛рдЗрдиреЛрдВ рдХреА {
a 1 , ...,
a k } рдХрд╛ рд╕реЗрдЯ рд╣реИред рдЗрд╕ рд╕реЗрдЯ рдХреА рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдорд╛рддреНрд░рд╛ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╣реИ:

рдЬрд╣рд╛рдБ
f (
x ,
y ) рд▓рд╛рдЗрдиреЛрдВ
x рдФрд░
y рдХреЗ рд╕рдмрд╕реЗ рдмрдбрд╝реЗ рд╕рд╛рдорд╛рдиреНрдп рдЙрдкрд╕рд░реНрдЧ рдХреА рд▓рдВрдмрд╛рдИ рд╣реИ; рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП,
f ("abc", "abd") = 2, рдФрд░
f ("ab", "bcd") = 0. рдЗрд╕ рдкреНрд░рдХрд╛рд░, рдкреНрд░реЛрдЯреАрди рдХреЗ рд╕рдореБрдЪреНрдЪрдп рдХрд╛ рдирд┐рд░реВрдкрдг {"abc", "abd", "abe"} 6 , рдФрд░ рд╕реЗрдЯ {"рдЖ", "рдмрд╛", "рдмрд╛"} - 2ред
рдЗрд╕ рдЦреЛрдЬ рдХреЗ рдмрд╛рдж, рдПрдмреАрдмреАрд╡рд╛рдИ рдХреНрд▓реЗрд╡рд░ рдмреАрд╡рд░ рдиреЗ рдХрдк рдкреНрд░рддрд┐рднрд╛рдЧрд┐рдпреЛрдВ рд╕реЗ рдПрдХ рдХрд╛рд░реНрдпрдХреНрд░рдо рд▓рд┐рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдХрд╣рд╛, рдЬреЛ рдХрд┐ рджрд┐рдП рдЧрдП рдкреНрд░реЛрдЯреАрди рдХреЗ рд╕реЗрдЯ рд╕реЗ рдЪреБрдирддрд╛ рд╣реИ рдЬрд┐рд╕рдореЗрдВ рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рд╕рдВрднрд╡ рдкреНрд░рддрд┐рдирд┐рдзрд┐ рдореВрд▓реНрдп рд╣реИред рдЙрд╕реЗ рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдореЗрдВ рдорджрдж рдХрд░реЗрдВ!
рдЯрд╛рд╕реНрдХ рдкрд╛рд░реНрд╕рд┐рдВрдЧрд╕рдорд╕реНрдпрд╛ рдХреЗ рдкреВрд░реНрдг рд╕рдорд╛рдзрд╛рди рдХреЗ рд▓рд┐рдП рддреБрд░рдВрдд рдЖрдЧреЗ рдмрдврд╝реЗрдВред рдЖрдЗрдП рд▓рд╛рдЗрдиреЛрдВ рдХреЛ рдХреНрд░рдордмрджреНрдз рд░реВрдк рд╕реЗ рдХреНрд░рдордмрджреНрдз рдХрд░реЗрдВ рдФрд░ lcp [ i ] - рд▓рд╛рдЗрдиреЛрдВ рдХреА рд╕рдмрд╕реЗ рдмрдбрд╝реА рд╕рд╛рдорд╛рдиреНрдп рдЙрдкрд╕рд░реНрдЧ рдХреА рд▓рдВрдмрд╛рдИ i рдФрд░ i + 1. рдпрд╣ рд╕рд╛рдмрд┐рдд рдХрд░рдирд╛ рдЖрд╕рд╛рди рд╣реИ рдХрд┐ рдХрд┐рд╕реА рднреА рджреЛ рд▓рд╛рдЗрдиреЛрдВ i рдФрд░ j рдХрд╛ рд╕рдмрд╕реЗ рдмрдбрд╝рд╛ рд╕рд╛рдорд╛рдиреНрдп рдЙрдкрд╕рд░реНрдЧ рдЕрдм min ( lpp [ i ], lcp [ i + 1] рд╣реИ) , ..., lcp [ j - 1]) (рдкреНрд░рддреНрдпрдп рд╕рд░рдгреА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╕рдордп рдПрдХ рд╕рдорд╛рди рдХрдерди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ)ред рдпрд╣ рдорджрджрдЧрд╛рд░ рд╣реИред
рдЕрдм рдбрд╛рдпрдирд╛рдорд┐рдХ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рд╡рд┐рдзрд┐ рд▓рд╛рдЧреВ рдХрд░реЗрдВред рд╣рдо рдЗрд╕ рддрд░рд╣ рдХреА рдПрдХ рдбреАрдкреА рдмрдирд╛рддреЗ рд╣реИрдВ: рдПрдл ( i , j , k ) рд╕рдорд╕реНрдпрд╛ рдХрд╛ рдЕрдзрд┐рдХрддрдо рд╕рдВрднрд╡ рдЙрддреНрддрд░ рд╣реИ рдпрджрд┐ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ k рд▓рд╛рдЗрдиреЛрдВ рдХреЛ рд▓рд╛рдЗрдиреЛрдВ рдХреЗ рд╕рд╛рде рд╕рдВрдЦреНрдпрд╛рдУрдВ i рд╕реЗ рдЪреБрдирд╛ рдЬрд╛рдирд╛ рд╣реИ ... j ред рд╕рдВрдХреНрд░рдордг рдЗрд╕ рдкреНрд░рдХрд╛рд░ рд╣реИ: рд╣рдо рдиреНрдпреВрдирддрдо lcp [ p ], рдлрд┐рд░ F ( i , j , k ) = рдЕрдзрд┐рдХрддрдо q = 0 ... k ( F ( i , p , q ) + F ( p +) рдХреЗ рд╕рд╛рде i : j - 1 рдХреЛ рдиреНрдпреВрдирддрдо pcp рдХреЗ рд╕рд╛рде рд╕реНрдерд┐рддрд┐ p рдкрд░ рдкрд╛рддреЗ рд╣реИрдВред 1, j , k - q ) + q ┬╖ ( k - q ) ┬╖ lcp [ p ]), рдЕрд░реНрдерд╛рдд, рд╣рдо рдорд╛рдирддреЗ рд╣реИрдВ рдХрд┐ q рдХреЛ рдкрдВрдХреНрддрд┐рдпреЛрдВ рд╕реЗ i ... p , k - q рдкрдВрдХреНрддрд┐рдпреЛрдВ рд╕реЗ p + 1 ... j , рдФрд░ рдХреЗ рд▓рд┐рдП рдЪреБрдирд╛ рдЬрд╛рддрд╛ рд╣реИред рдЗрди рдкрдВрдХреНрддрд┐рдпреЛрдВ рдХреЗ рд╕рднреА рдЬреЛрдбрд╝реЛрдВ рдореЗрдВ, рд╕рдмрд╕реЗ рдмрдбрд╝реЗ рд╕рд╛рдорд╛рдиреНрдп рдЙрдкрд╕рд░реНрдЧ рдХреА рд▓рдВрдмрд╛рдИ lcp [ p ] рд╣реИ (рдпрд╣ рдкрд╣рд▓реЗ рдкреИрд░рд╛рдЧреНрд░рд╛рдл рдореЗрдВ рдХрдерди рд╕реЗ рдирд┐рдореНрдирд╛рдиреБрд╕рд╛рд░ рд╣реИ)ред
рдРрд╕рд╛ рдирд┐рд░реНрдгрдп 50 рдЕрдВрдХ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рд╣реИред рдЕрдм рддрдХ, рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЗрд╕ рд╕рдорд╛рдзрд╛рди рдХреА рдЬрдЯрд┐рд▓рддрд╛ рдУ ( рдПрди 4 ) рдХреЗ рдЖрджреЗрд╢ рдХреА рд╣реИред рдпрд╣ рджрд░реНрд╢рд╛рддрд╛ рд╣реИ рдХрд┐ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЗрд╕ рд╕рдорд╛рдзрд╛рди рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдирд╛ рд╕рдВрднрд╡ рд╣реИ, рддрд╛рдХрд┐ рдЗрд╕рдХреА рдЬрдЯрд┐рд▓рддрд╛ рдУ ( рдПрди 2 ) рдХреЗ рдмрд░рд╛рдмрд░ рд╣реЛред рдЗрд╕рдХреЗ рд╕рд╛рде рд╢реБрд░реВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдо рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рдЕрд▓рдЧ-рдЕрд▓рдЧ рд╕реЗрдЧрдореЗрдВрдЯ i ... j рдЬрд┐рд╕ рдкрд░ рд╣рдо рдлрд╝рдВрдХреНрд╢рди рдПрдл рдХреЗ рдореВрд▓реНрдпреЛрдВ рдореЗрдВ рд░реБрдЪрд┐ рд░рдЦрддреЗ рд╣реИрдВ, рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ 2% рд╣реИрдВред 1, рдУ ( рдПрди 2 ) рдирд╣реАрдВред рдРрд╕рд╛ рдХреНрдпреЛрдВ рд╣реИ рдпрд╣ рд╣рдорд╛рд░реЗ рдбреАрдкреА рдХреЗ рд╕рдВрдХреНрд░рдордг рд╕реЗ рд╕рдордЭрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдЦрдВрдб 1 ... рдПрди рдХреЛ рджреЛ рдЦрдВрдбреЛрдВ рдореЗрдВ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ 1 ... рдкреА рдФрд░ рдкреА + 1 ... рдПрди , рдЗрдирдореЗрдВ рд╕реЗ рдкреНрд░рддреНрдпреЗрдХ рдЦрдВрдб рдХреЛ рджреЛ рдФрд░ рдЦрдВрдбреЛрдВ рдореЗрдВ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдФрд░ рдЗрд╕реА рддрд░рд╣; рд╣рдо рджреЗрдЦрддреЗ рд╣реИрдВ рдХрд┐ рдХрд┐рд╕реА рднреА i рдХреЗ рд▓рд┐рдП I рдФрд░ I + 1 рдХреЗ рдкрджреЛрдВ рдХреЗ рдмреАрдЪ рдореЗрдВ рдПрдХ рдмрд╛рд░ DP рдХреА рдкреВрд░реА рдЧрдгрдирд╛ рдХреЗ рд▓рд┐рдП "рдХрдЯ" рд╣реЛрдЧрд╛, рдФрд░ рдпрд╣ рдХрдЯ рджреЛ рдирдП рд╕реЗрдЧрдореЗрдВрдЯ рдЙрддреНрдкрдиреНрди рдХрд░реЗрдЧрд╛ рдЬрд┐рд╕рдореЗрдВ рд╣рдо DP рдХреЗ рдорд╛рдиреЛрдВ рдореЗрдВ рд░реБрдЪрд┐ рд░рдЦрддреЗ рд╣реИрдВред рдпрд╣рд╛рдВ рд╕реЗ рд╣рдореЗрдВ рдЖрд╡рд╢реНрдпрдХ рдЦрдВрдбреЛрдВ рдХреЗ 2 рдПрди - 1 рдХрд╛ рдЕрдиреБрдорд╛рди рдорд┐рд▓рддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП, рд╣рдорд╛рд░реЗ рд╕рдорд╛рдзрд╛рди рдореЗрдВ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдУ ( рдПрди 3 ) рд╕реЗ рдЕрдзрд┐рдХ рдЬрдЯрд┐рд▓рддрд╛ рдирд╣реАрдВ рд╣реИред
рдЕрдВрддрд┐рдо рдФрд░ рд╕рдмрд╕реЗ рдХрдард┐рди рдмрд╛рдд рдпрд╣ рдЕрдиреБрдорд╛рди рд▓рдЧрд╛рдирд╛ рд╣реИ рдХрд┐ рдЙрдкрд░реЛрдХреНрдд рд╕рдорд╛рдзрд╛рди рдореЗрдВ рдЬрдЯрд┐рд▓рддрд╛ рдУ ( рдПрди 2 ) рд╣реЛ рд╕рдХрддреА рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЖрдк рдЗрд╕реЗ рдЗрд╕ рддрд░рд╣ рд╕реЗ рд▓рд╛рдЧреВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдЖрдЗрдП рдПрдХ рдкреБрдирд░рд╛рд╡рд░реНрддреА рдлрд╝рдВрдХреНрд╢рди F ( i , j ) рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ рдЬреЛ рд▓рдВрдмрд╛рдИ рдХреА рдПрдХ рд╕рд░рдгреА рджреЗрддрд╛ рд╣реИ j - i + 2 - рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ DP рдорд╛рди F ( i , j , k ) (рдпрд╣ рд╕реНрдкрд╖реНрдЯ рд╣реИ рдХрд┐ рд╣рдо рдХреЗрд╡рд▓ 0 рд╕реЗ j - i + 1 рдХреЗ рдЕрдВрддрд░рд╛рд▓ рд╕реЗ рдХрд╢реНрдореАрд░ рдХреЗ рдореВрд▓реНрдпреЛрдВ рдореЗрдВ рд░реБрдЪрд┐ рд░рдЦрддреЗ рд╣реИрдВред )ред рдЗрд╕ рдлрд╝рдВрдХреНрд╢рди рдХреЗ рдЕрдВрджрд░, рд╣рдо рдирд┐рдореНрди рдХрд╛рд░реНрдп рдХрд░рддреЗ рд╣реИрдВ: p рдвреВрдВрдвреЗрдВ, F ( i , p ) рдФрд░ F ( p + 1, j ) рдХреЛ рдХреЙрд▓ рдХрд░реЗрдВ, рдЕрдм 0 рд╕реЗ p - i + 1 рддрдХ рдХрд╛ рдкреБрдирд░рд╛рд╡реГрддрд┐ x , 0 рд╕реЗ j - p рдХреЗ рд▓рд┐рдП iterate y рдФрд░ рдорд╛рди F рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░реЗрдВред ( i , j , x + y ), рдЕрдЧрд░ рдЗрд╕рдореЗрдВ рд╕реБрдзрд╛рд░ рд╣реБрдЖ рд╣реИ (рдЖрдк рд▓реЗрдЦрдХ рдХреЗ рд╕рдорд╛рдзрд╛рди рдореЗрдВ рдЕрдзрд┐рдХ рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ, рддреЛ рд╡рд╣рд╛рдВ рд╕рдм рдХреБрдЫ рдмрд╣реБрдд рдкрд╛рд░рджрд░реНрд╢реА рд╣реИ) рдлрд╝рдВрдХреНрд╢рди рдПрдл рдХрд╛ рдЕрдзрд┐рдХрддрдо рдСрдкрд░реЗрдЯрд┐рдВрдЧ рд╕рдордп, рдЕрдВрддрд░рд╛рд▓ рдкрд░ рдмреБрд▓рд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ ... рдЬреЗ рдХреА рд▓рдВрдмрд╛рдИ рдЬреЗ - рдЖрдИ + 1 = рдПрди , рдЯреА ( рдПрди ) = рдЕрдзрд┐рдХрддрдо рдПрдХреНрд╕ = 1 .. рдПрди - 1 ( рдЯреА ( рдПрдХреНрд╕ ) + рдЯреА ( рдПрди - рдПрдХреНрд╕ ) рдХреЗ рд░реВрдк рдореЗрдВ рд▓рд┐рдЦрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ ред + ( X + 1) ┬╖ ( N - X + 1))ред рдпрд╣ рд╕рдордЭрдирд╛ рдмрд╛рдХреА рд╣реИ рдХрд┐ рдЯреА ( рдПрди ) = рдУ ( рдПрди 2 )ред рдпрд╣ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЯреА рдХреА рдЧрдгрдирд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рд╛рдзрд╛рд░рдг рдбреАрдкреА рд▓рд┐рдЦрдХрд░ ред рдпрджрд┐ рдЖрдк рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕реЛрдЪрддреЗ рд╣реИрдВ, рддреЛ рдЖрдк рдЗрд╕реЗ рдЗрд╕ рддрд░рд╣ рд╕реЗ рд╕рдордЭ рд╕рдХрддреЗ рд╣реИрдВ: рдЬрдм рд╣рдо x = 0 ... p - i - 1 рдФрд░ y = 0 ... j - p рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд▓реВрдк рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдХрд▓реНрдкрдирд╛ рдХрд░реЗрдВ рдХрд┐ рд╣рдо рдХреБрдЫ рдкрдВрдХреНрддрд┐рдпреЛрдВ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЫрд╛рдВрдЯрддреЗ рд╣реИрдВ: x = i ... p рдФрд░ y = p + 1 ... j (рдпрд╣рд╛рдВ, x рдФрд░ y рд╕реЗ рдЕрдзрд┐рдХ рдкреБрдирд░рд╛рд╡реГрддрд┐ рдПрдХ рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐ рдХреЛ рдХрдо рдХрд░ рджреЗрддреА рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдирд╣реАрдВ рд╣реИ); рдлрд┐рд░ рдбреАрдкреА рдХреА рдкреВрд░реА рдЧрдгрдирд╛ рдХреЗ рд▓рд┐рдП рдкреНрд░рддреНрдпреЗрдХ рдЬреЛрдбрд╝реА рд▓рд╛рдЗрдиреЛрдВ рдХреЛ рдПрдХ рдмрд╛рд░ рдареАрдХ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛, рдЬреЛ рд╣рдореЗрдВ рдЕрдВрддрд┐рдо рдЬрдЯрд┐рд▓рддрд╛ рдУ ( рдПрди 2 ) рджреЗрддрд╛ рд╣реИред
рдпрд╣рд╛рдВ рдЖрдк рд▓реЗрдЦрдХ рдХрд╛ рд╕рдорд╛рдзрд╛рди рдкрд╛ рд╕рдХрддреЗ рд╣реИрдВред
рдХрдИ рдкреНрд░рддрд┐рднрд╛рдЧрд┐рдпреЛрдВ рдиреЗ рдмреЛрд░реЙрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╕рдорд╛рдзрд╛рди рдкрд╛рд░рд┐рдд рдХрд┐рдпрд╛ред рдЗрд╕ рддрд░рд╣ рдХреЗ рд╕рдорд╛рдзрд╛рдиреЛрдВ рдореЗрдВ рдУ ( рдПрди 2 ) рдЬрдЯрд┐рд▓рддрд╛ рднреА рд╣реЛ рд╕рдХрддреА рд╣реИ, рд╣рд╛рд▓рд╛рдВрдХрд┐ рд╡реЗ рд▓рдВрдмреЗ рд╕рдордп рддрдХ рд░рд╣рддреЗ рд╣реИрдВ рдФрд░ рдмрд╣реБрдд рдЕрдзрд┐рдХ рд╕реНрдореГрддрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВред рдлрд┐рд░ рднреА, рд╕рдордп рдФрд░ рд╕реНрдореГрддрд┐ рд╕реАрдорд╛рдПрдВ рдЕрд▓рдЧ-рдЕрд▓рдЧ рд╕рдорд╛рдзрд╛рдиреЛрдВ рдХреЗ рд▓рд┐рдП рдХрд╛рдлреА рд╡рдлрд╛рджрд╛рд░ рдереАрдВ :)
рдЖрдк рдХреЛрдбрдлреЛрд░реНрд╕реЗрд╕ рдХреЗ рд╕рднреА рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ:
рд▓рд╛рдЗрдЯ рдбрд┐рд╡реАрдЬрди ,
рдПрдХ рд▓рд╛рдЗрдЯ рдбрд┐рд╡реАрдЬрди рдХреЗ рдХрд╛рд░реНрдпреЛрдВ рдХрд╛ рд╡рд┐рд╢реНрд▓реЗрд╖рдг ,
рдХрдард┐рди рдбрд┐рд╡реАрдЬрди ,
рдПрдХ рдХрдард┐рди рдбрд┐рд╡реАрдЬрди рдХреЗ рдХрд╛рд░реНрдпреЛрдВ рдХрд╛ рд╡рд┐рд╢реНрд▓реЗрд╖рдг ред
рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, рд╣рдорд╛рд░реЗ рд╕рд╣рдпреЛрдЧреА рдПрдмреАрдмреАрд╡рд╛рдИ рдХрдк рдореЗрдВ рдкреНрд░рддрд┐рднрд╛рдЧрд┐рдпреЛрдВ рдХреЗ рдЙрдЪреНрдЪ рд╕реНрддрд░ рдкрд░ рдзреНрдпрд╛рди рджреЗрддреЗ рд╣реИрдВред рдЬрдЯрд┐рд▓ рд╡рд┐рднрд╛рдЬрди рдореЗрдВ, рд╕рднреА 6 рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреЛ 10 рд▓реЛрдЧреЛрдВ рджреНрд╡рд╛рд░рд╛ рд╣рд▓ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ - рдпрд╣ рдмрд╣реБрдд рдХреБрдЫ рд╣реИред рдкреНрд░рддрд┐рднрд╛рдЧрд┐рдпреЛрдВ рдХреА рдЕрдЪреНрдЫреА рддреИрдпрд╛рд░реА рдЗрд╕ рддрдереНрдп рд╕реЗ рднреА рд╕рдВрдХреЗрддрд┐рдд рд╣реЛрддреА рд╣реИ рдХрд┐ рдЕрдиреМрдкрдЪрд╛рд░рд┐рдХ рд╕реНрдЯреИрдВрдбрд┐рдВрдЧ рдореЗрдВ (рди рдХреЗрд╡рд▓ рдЫрд╛рддреНрд░реЛрдВ рдХреЗ рд▓рд┐рдП, рдмрд▓реНрдХрд┐ рд╕реНрдХреВрд▓реА рдмрдЪреНрдЪреЛрдВ рдХреЗ рд▓рд┐рдП рднреА рднрд╛рдЧ рд▓реЗрдирд╛ рд╕рдВрднрд╡ рдерд╛), рдкрд╛рдВрдЪ рдиреЗрддрд╛рдУрдВ рдореЗрдВ рдЫрд╛рддреНрд░ рд╢рд╛рдорд┐рд▓ рдереЗ - рд╕реНрдХреВрд▓реА рдмрдЪреНрдЪреЛрдВ рдХреЗ рд▓рд┐рдП рдСрд▓-рд░реВрд╕реА рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ рдУрд▓рдВрдкрд┐рдпрд╛рдб рдХрд╛ рд╡рд┐рдЬреЗрддрд╛ред
рд╕рдореАрдХреНрд╖рд╛рдУрдВ рдХреЛ рджреЗрдЦрддреЗ рд╣реБрдП, рдЕрдзрд┐рдХрд╛рдВрд╢ рдкреНрд░рддрд┐рднрд╛рдЧрд┐рдпреЛрдВ рдиреЗ рд╣рдорд╛рд░реА рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреЛ рд╣рд▓ рдХрд░рдирд╛ рдкрд╕рдВрдж рдХрд┐рдпрд╛,
рд╣реЗрдпреБрд░рд┐рд╕реНрдЯрд┐рдХ рдорд╛рдиреНрдпрддрд╛ рдХрд╛рд░реНрдп рд▓реЛрдЧреЛрдВ рдХреЛ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рджрд┐рд▓рдЪрд╕реНрдк рд▓рдЧрд╛ред рдЦреИрд░, рдЕрдЧрд▓реЗ рд╕рд╛рд▓ рд╣рдорд╛рд░реЗ рд╕рд╣рдпреЛрдЧреА рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдЙрдирдХреЗ рд▓рд┐рдП рдЙрд╕реА рднрд╛рд╡рдирд╛ рдореЗрдВ рдХреБрдЫ рджрд┐рд▓рдЪрд╕реНрдк рддреИрдпрд╛рд░ рдХрд░реЗрдВрдЧреЗред рдкрд┐рдЫрд▓реЗ рд╕рд╛рд▓ рдХреА рддрд░рд╣, рдЬреБрд▓рд╛рдИ рдХреА рд╢реБрд░реБрдЖрдд рдореЗрдВ, рдПрдмреАрдмреАрд╡рд╛рдИ рдХрдк рдХреЗ рдкреНрд░рддрд┐рднрд╛рдЧреА рд╣рдорд╛рд░реЗ рдХрд╛рд░реНрдпрд╛рд▓рдп рдореЗрдВ рдЖрдПрдВрдЧреЗ, рдЙрдирдХреЗ рдЕрдиреБрд░реЛрдз рдкрд░ рд╣рдо рдЗрд╕ рдмрд╛рд░ рдПрдХ рдФрд░ рдЫреЛрдЯреА рдкреНрд░рддрд┐рдпреЛрдЧрд┐рддрд╛ рдЖрдпреЛрдЬрд┐рдд рдХрд░реЗрдВрдЧреЗред