рдкреНрд░рддреНрдпрдп рд╕рд░рдгреА - рдкреНрд░рддреНрдпрдп рдкреЗрдбрд╝ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрди

рдирдорд╕реНрдХрд╛рд░ рдкреНрд░рд┐рдп рд╕рдореБрджрд╛рдп! рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдмрд╣реБрдд рд╕реЗ рд▓реЛрдЧ рдкреНрд░рддреНрдпрдп рдХреЗ рдкреЗрдбрд╝ рдХреЗ рд░реВрдк рдореЗрдВ рдРрд╕реА рдбреЗрдЯрд╛ рд╕рдВрд░рдЪрдирд╛ рд╕реЗ рдкрд░рд┐рдЪрд┐рдд рд╣реИрдВред Habr├й рдкрд░ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЗрд╕рдХрд╛ рд╡рд┐рд╡рд░рдг рдерд╛ рдХрд┐ рдЗрд╕реЗ рдХреИрд╕реЗ рдмрдирд╛рдпрд╛ рдЬрд╛рдП рдФрд░ рдХреНрдпреЛрдВред рд╕рдВрдХреНрд╖реЗрдк рдореЗрдВ, рдпрд╣ рдЖрд╡рд╢реНрдпрдХ рд╣реИ рдЬрдм рдкреВрд░реНрд╡ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдкрд╛рда рдП рдореЗрдВ рдХрдИ рдмрд╛рд░ рдХреБрдЫ рдордирдорд╛рдирд╛ рдкреИрдЯрд░реНрди рдПрдХреНрд╕ рдХреЗ рд▓рд┐рдП рджреЗрдЦрдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реЛ, рдФрд░ рдЙрдХрдХреЛрди рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЗрд╕ рддрд░рд╣ рдХреЗ рдПрдХ рдкреЗрдбрд╝ рдХреЛ рджрд░реНрджрдирд╛рдХ рд░реВрдк рд╕реЗ рдирд┐рд░реНрдорд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ (рдЕрдиреНрдп рд╡рд┐рдХрд▓реНрдк рднреА рд╣реИрдВ, рд▓реЗрдХрд┐рди рд╡реЗ рдФрд░ рднреА рдЕрдзрд┐рдХ рдкреАрдбрд╝рд┐рдд рд╣реИрдВ)ред рдПрд▓реНрдЧреЛрд░рд┐рджрдо рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддреЗ рд╕рдордп рдПрдХ рд╕рд╛рдорд╛рдиреНрдп рдЕрд╡рд▓реЛрдХрди рдпрд╣ рд╣реИ рдХрд┐ рдкреЗрдбрд╝ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ, рдЕрдЪреНрдЫреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рд╡реНрдпрд╡рд╣рд╛рд░ рдореЗрдВ рдЧрдВрднреАрд░ рдореЗрдореЛрд░реА рдУрд╡рд░рд╣реЗрдбреНрд╕ рдХреЗ рдХрд╛рд░рдг рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рдмрдЪрд╛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рдмрд╣реБрдд рдЗрд╖реНрдЯрддрдо рдирд╣реАрдВ рд╣реИ (рдХрдВрдкреНрдпреВрдЯрд░ рдбреЗрдЯрд╛ рд╣реИрдВрдбрд▓рд┐рдВрдЧ рдХреА рджрдХреНрд╖рддрд╛ рдХреЗ рджреГрд╖реНрдЯрд┐рдХреЛрдг рд╕реЗ) рд╕реНрдерд╛рдиред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдпрд╣ рдРрд╕реЗ рдкреЗрдбрд╝ рдореЗрдВ рд╣реИ рдХрд┐ рд╕рдВрд░рдЪрдирд╛ рдХрд╛ рд╡рд░реНрдгрд╛рдиреБрдХреНрд░рдорд┐рдХ рдирд┐рд░реНрднрд░рддрд╛ рднреА рдПрдХ рдФрд░ рдЕрдзрд┐рдХ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдЙрдкрджреНрд░рд╡ рд╣реИред рдЗрди рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдПрдХ рдкреНрд░рддреНрдпрдп рд╕рд░рдгреА рдХрд╛ рдЖрд╡рд┐рд╖реНрдХрд╛рд░ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред рдЗрд╕реЗ рдХреИрд╕реЗ рдмрдирд╛рдпрд╛ рдЬрд╛рдП рдФрд░ рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХреИрд╕реЗ рдХрд░реЗрдВ рдФрд░ рдЗрд╕ рд▓реЗрдЦ рдореЗрдВ рдХрд░реЗрдВрдЧреЗред

рд▓реЗрдЦ рдХреА рд╕рд╛рдордЧреНрд░реА рдкреНрд░рддреНрдпрдп рдФрд░ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдЙрдкрд╕рд░реНрдЧ рдХреА рдЕрд╡рдзрд╛рд░рдгрд╛рдУрдВ рдХреЗ рдЬреНрдЮрд╛рди рдХреЗ рд╕рд╛рде-рд╕рд╛рде рджреНрд╡рд┐рдЖрдзрд╛рд░реА рдЦреЛрдЬ рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддреА рд╣реИ, рдЗрд╕рдХрд╛ рднреА рдЬреНрдЮрд╛рди рд╣реИред рдХрд┐рд╕реА рдХреЛ рдпрд╣ рднреА рд╕рдордЭрдирд╛ рдЪрд╛рд╣рд┐рдП рдХрд┐ рд╕реНрдерд┐рд░ рдЫрдБрдЯрд╛рдИ рдФрд░ рдмрд┐рдЯрд╡рд╛рдЗрдЬрд╝ рдЫрдБрдЯрд╛рдИ рдХреНрдпрд╛ рд╣реИ , рд╕рд╛рде рд╣реА рдпрд╣ рд╕рдордЭрдиреЗ рд╕реЗ рднреА рд╣реИ рдХрд┐ рдЧрд┐рдирддреА рджреНрд╡рд╛рд░рд╛ рд╕реНрдерд┐рд░ рдЫрдБрдЯрд╛рдИ рдХрд╛ рдХреНрдпрд╛ рдорддрд▓рдм рд╣реИред рдХреБрдЫ рд╣рд┐рд╕реНрд╕реЛрдВ рдХреЗ рд▓рд┐рдП, рд╣рдореЗрдВ рдПрдХ рдЦрдВрдб рдкрд░ рдиреНрдпреВрдирддрдо рд╕рдорд╕реНрдпрд╛ рдХрд╛ рдЬреНрдЮрд╛рди рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП - рд░реЗрдВрдЬ рдиреНрдпреВрдирддрдо рдХреНрд╡реЗрд░реА (рдЖрд░рдПрдордХреНрдпреВ) ред рдЦреИрд░, рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, рдЖрдкрдХреЛ рдЪреЗрддрд╛рд╡рдиреА рджреА рдЧрдИ рдереА: рдХрд┐рд╕реА рдиреЗ рдирд╣реАрдВ рдХрд╣рд╛ рдХрд┐ рдпрд╣ рдЖрд╕рд╛рди рд╣реЛрдЧрд╛ред



рдкреНрд░рддреНрдпрдп рд╕рд░рдгреА рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ



рд╕рднреА рдкреЗрдбрд╝ рд╕рдорд╛рди рд░реВрдк рд╕реЗ рдЙрдкрдпреЛрдЧреА рдирд╣реАрдВ рд╣реИрдВред



рддреЛ, рдкреЗрдбрд╝ рд╣рдореЗрдВ рд╕реВрдЯ рдХреНрдпреЛрдВ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ? рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рдЬрд╝рд╛рд╣рд┐рд░ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдмрдЪреНрдЪреЛрдВ, рдорд╛рддрд╛-рдкрд┐рддрд╛, рдЖрджрд┐ рдХреЗ рд▓рд┐рдП рд▓рд┐рдВрдХ рд╕реНрдЯреЛрд░ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХреА рдЧрдИ рдореЗрдореЛрд░реА рдХрд╛ рдЖрдХрд╛рд░ рдЗрд╕ рд▓рд┐рдВрдХ рд╕реЗ рд╕рдВрдЧреНрд░рд╣реАрдд рдирд╣реАрдВ рд╣реЛрдиреЗ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдХрд╛рдлреА рдмрдбрд╝рд╛ рд╣реИред рджреВрд╕рд░реЗ, рдпрджрд┐ рдЖрдк рдХреБрдЫ рдорд╛рдирдХ рдЖрд╡рдВрдЯрдирдХрд░реНрддрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдбреЗрдЯрд╛ рдХреЗ рд▓рд┐рдП рдореЗрдореЛрд░реА рдЖрд╡рдВрдЯрд┐рдд рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдпрд╣ "рдЕрд▓рдЧ-рдЕрд▓рдЧ рдХреЛрдгреЛрдВ рдкрд░ рдмрд┐рдЦрд░реЗ рд╣реБрдП" рд╣реЛрдЧрд╛, рдкреЗрдбрд╝ рдХреЗ рдЪрд╛рд░реЛрдВ рдУрд░ рдЬрд╛рдиреЗ рдХреЗ рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк рдЗрд╕рдореЗрдВ рдмрдбрд╝реА рд╕рдВрдЦреНрдпрд╛ рдореЗрдВ рд╕реНрдореГрддрд┐ рд╕рдВрдХреНрд░рдордг рд╢рд╛рдорд┐рд▓ рд╣реЛрдВрдЧреЗ, рдЬреЛ рдореЗрдореЛрд░реА рдХреИрд╢ рдХреЛ рдкреНрд░рднрд╛рд╡рд┐рдд рдХрд░рддрд╛ рд╣реИред рдмреЗрд╢рдХ, рдРрд╕реЗ рдЯреНрд░рд┐рдХреНрд╕ рд╣реИрдВ рдЬреЛ рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХреЛ рджрдмрд╛рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддреЗ рд╣реИрдВ: рдЖрдкрдХреЛ рд╕рд░рдгреА рдореЗрдВ рдЯреНрд░реА рдиреЛрдбреНрд╕ рд░рдЦрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдФрд░ рд╕реВрдЪрдХ рдХреЗ рдмрдЬрд╛рдп рд╕рд░рдгреА рдореЗрдВ рд╕реВрдЪрдХрд╛рдВрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред рддрдм рд╡реГрдХреНрд╖ рд╕реНрдореГрддрд┐ рдХрд╛ рдПрдХ рдареЛрд╕ рдЯреБрдХрдбрд╝рд╛ рдкреНрд░рддреАрдд рд╣реЛрдЧрд╛ред

рд╡реИрд╕реЗ рдпреЗ рд╕рднреА рдкреЗрдбрд╝реЛрдВ рдХреА рдЖрдо рд╕рдорд╕реНрдпрд╛рдПрдВ рд╣реИрдВред рдФрд░ рдХреБрдЦреНрдпрд╛рдд рд╡рд░реНрдгрдорд╛рд▓рд╛ рдирд┐рд░реНрднрд░рддрд╛ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреНрдпрд╛? рдЖрдЗрдП рдкреНрд░рддреНрдпрдп рд╡реГрдХреНрд╖ рдХреЗ рд╡реНрдпрд╛рд╡рд╣рд╛рд░рд┐рдХ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЛ рджреЗрдЦреЗрдВ (рдпрджрд┐ рдЖрдк рдЗрд╕рдХреЗ рдкрд╛рд░ рдирд╣реАрдВ рдЖрдП рд╣реИрдВ, рддреЛ рд╕рдорд╕реНрдпрд╛ рдХрд╛ рд╕рд╛рд░ рд╕рдордЭрдиреЗ рдХреЗ рд▓рд┐рдП рдпрд╣ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдирд╣реАрдВ рд╣реИ)ред рдЗрд╕ рддрд░рд╣ рдХреЗ рдПрдХ рдкреЗрдбрд╝ рдХреЗ рдкреНрд░рддреНрдпреЗрдХ рдиреЛрдб рдореЗрдВ 1 рд╕реЗ рдПрдХ рд░рд╛рд╢рд┐ рдореЗрдВ рдмрдЪреНрдЪреЛрдВ рдХреЗ рд▓рд┐рдП рд▓рд┐рдВрдХ рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдмрд┐рдирд╛ рдмреНрд░рд╛рдВрдЪ рдХреЗ рдПрдХ рдЯрд░реНрдорд┐рдирд▓ рд╢реАрд░реНрд╖ рдХреЗ рд▓рд┐рдП) рд╡рд░реНрдгрдорд╛рд▓рд╛ рдХреЗ рдЖрдХрд╛рд░ рдХреЗ рд▓рд┐рдПред рддреЛ рд╕рд╡рд╛рд▓ рдпрд╣ рд╣реИ рдХрд┐ рдЗрди рд▓рд┐рдВрдХреНрд╕ рдХреЛ рдХреИрд╕реЗ рд╕реНрдЯреЛрд░ рдХрд┐рдпрд╛ рдЬрд╛рдПред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЖрдк рдкреНрд░рддреНрдпреЗрдХ рдиреЛрдб рдореЗрдВ рд╡рд░реНрдгрдорд╛рд▓рд╛ рдХреЗ рдЖрдХрд╛рд░ рдХреА рдПрдХ рдХрдбрд╝реА рдкрдХрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВред рдпрд╣ рдЬрд▓реНрджреА рд╕реЗ рдХрд╛рдо рдХрд░реЗрдЧрд╛ - рдпрд╣ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐ рдХреНрдпрд╛ рдЗрд╕ рдиреЛрдб рдореЗрдВ рдПрдХ рд╕рдВрдмрдВрдзрд┐рдд рдмрдЪреНрдЪрд╛ рдУ (1) рдХреЗ рд▓рд┐рдП рд╣реЛ рд╕рдХрддрд╛ рд╣реИред рд▓реЗрдХрд┐рди рд╕рд░рдгреА рдХреЗ рдЕрдзрд┐рдХрд╛рдВрд╢ рдХрдХреНрд╖реЛрдВ рдореЗрдВ рд╢реВрдиреНрдп рд╕рдВрджрд░реНрдн рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд┐рдП рдЬрд╛рдПрдВрдЧреЗ, рдФрд░ рдЗрди рдХреЛрд╢рд┐рдХрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдореЗрдореЛрд░реА рдЪрд▓реА рдЬрд╛рдПрдЧреАред рдЫреЛрдЯреЗ рдЕрдХреНрд╖рд░ рдХреЗ рд▓рд┐рдП (рдЬреИрд╕реЗ рдбреАрдПрдирдП рдореЗрдВ рдиреНрдпреВрдХреНрд▓рд┐рдпреЛрдЯрд╛рдЗрдбреНрд╕), рдЗрд╕рдХреЗ рд╕рд╛рде рдирд░рдХ, рд▓реЗрдХрд┐рди рдЪреАрдиреА рдкрд╛рддреНрд░реЛрдВ рдХреА рдХрд▓реНрдкрдирд╛ рдХрд░реЗрдВ? рд╕рд┐рджреНрдзрд╛рдВрдд рд░реВрдк рдореЗрдВ, рдмрд╣реБрдд рджреВрд░ рдЬрд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ: рдХреЗрд╕-рд╕рдВрд╡реЗрджреА рд░реВрд╕реА рд╡рд░реНрдгрдорд╛рд▓рд╛ рднреА рд╣рдореЗрдВ рдирд╣реАрдВ рд╕реЛрдЪрддреА рд╣реИ, рд▓реЗрдХрд┐рди рдХреНрдпрд╛ рд╣рдо рдЗрддрдирд╛ рдЦрд╛рд▓реА рдбреЗрдЯрд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВред

рдбрд╛рдпрдиреЗрдорд┐рдХ рд░реВрдк рд╕реЗ рдмрджрд▓рддреЗ рдПрд░реЗ (рд╡реЗрдХреНрдЯрд░) рдореЗрдВ рдХреЗрд╡рд▓ рдЧреИрд░-рдЦрд╛рд▓реА рд▓рд┐рдВрдХ рд░рдЦрдХрд░ рдореЗрдореЛрд░реА рдХреЛ рдЕрдзрд┐рдХ рдЖрд░реНрдерд┐рдХ рд░реВрдк рд╕реЗ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╕рдВрднрд╡ рд╣реИ, рд▓реЗрдХрд┐рди рдлрд┐рд░ рдУ (1) рдХреЗ рд▓рд┐рдП рд╕рдВрдмрдВрдзрд┐рдд рдмрдЪреНрдЪреЗ рдХреЗ рдиреЛрдб рдХреА рдЙрдкрд╕реНрдерд┐рддрд┐ рдХреЗ рд▓рд┐рдП рдЬрд╛рдВрдЪ рдХрд░рдирд╛ рдмрд╣реБрдд рд╣реА рд╕рдВрджрд┐рдЧреНрдз рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред рдпрджрд┐ рдЖрдк рд╕реЙрд░реНрдЯ рдХрд┐рдП рдЧрдП рдлреЙрд░реНрдо рдореЗрдВ рд▓рд┐рдВрдХ рд╕реНрдЯреЛрд░ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ O (рд▓реЙрдЧ (рд╡рд░реНрдгрдорд╛рд▓рд╛ рдЖрдХрд╛рд░))ред рдЖрдк рд╣реИрд╢ рдЯреЗрдмрд▓ рдХреЗ рд╕рд╛рде рдЦреЗрд▓рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдпрд╣ рдХреЗрд╡рд▓ рдЕрддрд┐рд░рд┐рдХреНрдд-рдмрдбрд╝реЗ рдЕрдХреНрд╖рд░ рдХреЗ рд▓рд┐рдП рд╕рдордЭ рдореЗрдВ рдЖрдПрдЧрд╛, рдФрд░ рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдкрд░реЛрдХреНрд╖ рдХрд╛ рдПрдХ рдФрд░ рд╕реНрддрд░ рдкреЗрд╢ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдФрд░ рдРрд╕реЗ рдкреЗрдбрд╝ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП O (n) рдирд╣реАрдВ рд╣реИред рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, рдХрд┐рд╕реА рднреА рдорд╛рдорд▓реЗ рдореЗрдВ, рд╕реНрдореГрддрд┐ рдФрд░ рдкреНрд░рджрд░реНрд╢рди рдХреЗ рдмреАрдЪ рд╕рдордЭреМрддрд╛ рдХрд░рдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реЛрдЧрд╛ред


рдкреНрд░рддреНрдпрдп рд╕рд░рдгреА



1989 рдореЗрдВ, рдордирдмрд░ рдФрд░ рдорд╛рдпрд░реНрд╕ рдиреЗ рдПрдХ рдбреЗрдЯрд╛ рд╕рдВрд░рдЪрдирд╛ рдХрд╛ рд╡рд░реНрдгрди рдХрд░рддреЗ рд╣реБрдП рдПрдХ рд▓реЗрдЦ рдкреНрд░рдХрд╛рд╢рд┐рдд рдХрд┐рдпрд╛, рдЬреИрд╕реЗ рдХрд┐ рдкреНрд░рддреНрдпрдп рд╕рд░рдгреА рдФрд░ рд╕рдмрд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреА рдЦреЛрдЬ рдХреЗ рд▓рд┐рдП рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХреИрд╕реЗ рдХрд░реЗрдВред рдПрдХ рдкреНрд░рддреНрдпрдп рд╕рд░рдгреА рд▓реЗрдХреНрд╕рд┐рдХ рд░реВрдк рд╕реЗ рдХреНрд░рдордмрджреНрдз рд░реЗрдЦрд╛ рдкреНрд░рддреНрдпрдпреЛрдВ рдХреА рдПрдХ рд╕рд░рдгреА рд╣реИ (рдпрджрд┐ рд╢рдмреНрджрд╛рд╡рд▓реА рдЕрдкрд░рд┐рдЪрд┐рдд рд╣реИ, рддреЛ рдЖрдк рдЗрд╕ рдЖрд▓реЗрдЦ рдореЗрдВ "рд╕рдорд╕реНрдпрд╛ рдХрд╛ рдмрдпрд╛рди" рдЕрдиреБрднрд╛рдЧ рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ)ред рд╕рд╛рдорд╛рдиреНрдпрддрдпрд╛, рдпрд╣ рдкреНрд░рддреНрдпрдп рдХреЛ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреЛрдИ рдорддрд▓рдм рдирд╣реАрдВ рд╣реИ; рдпрд╣ рдХрд┐рд╕реА рджрд┐рдП рдЧрдП рдкреНрд░рддреНрдпрдп рдХреА рд╢реБрд░реБрдЖрдд рдХреА рд╕реНрдерд┐рддрд┐ рдХреЛ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рд╣реИ, рд▓реЗрдХрд┐рди рдПрдХ рд╕рд░рдгреА рдХреА рдкрд░рд┐рднрд╛рд╖рд╛ рдХреЛ рд╕рдордЭрдирд╛ рдЖрд╕рд╛рди рд╣реИред рдпрд╣рд╛рдБ рд╕реНрдЯреНрд░рд┐рдВрдЧ "рдорд┐рд╕рд┐рд╕рд┐рдкреА" рдХреЗ рд▓рд┐рдП рдПрдХ рдЙрджрд╛рд╣рд░рдг рд╣реИ:

#рдкреНрд░рддреНрдпрдпрдкреНрд░рддреНрдпрдп рд╕рдВрдЦреНрдпрд╛
1рдореИрдВ11
2ippi8
3issippi5
4ississippi2
5рдорд┐рд╕реАрд╕рд┐рдкреА1
6рдЕрдиреБрдХрд░рдгреАрдп10
7ppi9
8Sippi7
9sissippi4
10ssippi6
11ssissippi3



рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛ рдПрдХ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдЕрд╡рдзрд╛рд░рдгрд╛ рдкреНрд░рддреНрдпрдп рдХреА рд░реИрдВрдХ рд╣реИ - рд╡рд╣ рд╕реНрдерд╛рди рдЬреЛ рдЫрдВрдЯрдиреА рдХреЗ рд╕рдордп рдкреНрд░рддреНрдпрдп рд▓реЗрддрд╛ рд╣реИ, рдЕрд░реНрдерд╛рдд, рдкреНрд░рддреНрдпрдп рд╕рд░рдгреА рдореЗрдВ рдЗрд╕рдХреА рд╕реНрдерд┐рддрд┐ред рдпреЗ рдкрд╛рд░рд╕реНрдкрд░рд┐рдХ рдорд╛рддреНрд░рд╛рдПрдБ рд╣реИрдВред рд╣рдо рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдЙрдирдХреЗ рдмреАрдЪ рдЕрдВрддрд░ рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВ, рдХреНрдпреЛрдВрдХрд┐ рдПрдХ рд╕рд░рдгреА рд╣реЛрдиреЗ рдХреЗ рдмрд╛рдж, рдЖрдк рдУ (рдПрди) рдХреЗ рд▓рд┐рдП рдЕрдиреНрдп рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рдЖрдкрдХреЗ рдкрд╛рд╕ рд╣рдореЗрд╢рд╛ рджреЛрдиреЛрдВ рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВред




рд╕рдмрд╕реЗ рд╕рд░рд▓ рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрди рдЦреЛрдЬ



рдПрдХ рдЙрджрд╛рд╣рд░рдг рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВред рдореВрд▓ рд╕реНрдЯреНрд░рд┐рдВрдЧ "рдорд┐рд╕рд┐рд╕рд┐рдкреА" рд╣реИ ред рдорд╛рди рд▓реАрдЬрд┐рдП рдХрд┐ рдПрдХ "рд╕рд┐рдк" рдирдореВрдирд╛ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдЖрддрд╛ рд╣реИред рдкреНрд░рддреНрдпрдп рд╕рд░рдгреА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдкрд╛рда рдореЗрдВ рдПрдХ рдкреИрдЯрд░реНрди рд╣реЛрддрд╛ рд╣реИ рдпрд╛ рдирд╣реАрдВ, рдпрд╣ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдХрд╛ рд╕рдмрд╕реЗ рд╕рд░рд▓ рддрд░реАрдХрд╛ рдкреИрдЯрд░реНрди рдХреЗ рдкрд╣рд▓реЗ рдЪрд░рд┐рддреНрд░ рдХреЛ рд▓реЗрдирд╛ рд╣реИ рдФрд░ рдПрдХ рд╣реА рдЕрдХреНрд╖рд░ рд╕реЗ рд╢реБрд░реВ рд╣реЛрдиреЗ рд╡рд╛рд▓реЗ рдкреНрд░рддреНрдпрдпреЛрдВ рдХреЗ рд╕рд╛рде рдПрдХ рд╕реАрдорд╛ рдЦреЛрдЬрдиреЗ рдХреЗ рд▓рд┐рдП рджреНрд╡рд┐рдЖрдзрд╛рд░реА рдЦреЛрдЬ (рд╕рд░рдгреА рдХреЛ рдХреНрд░рдордмрджреНрдз рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╣реИред рдЪреВрдВрдХрд┐ рд╕реАрдорд╛ рдХреЗ рд╕рднреА рддрддреНрд╡ рдХреНрд░рдордмрджреНрдз рд╣реИрдВ, рдФрд░ рдкрд╣рд▓реЗ рд╡рд░реНрдг рд╕рдорд╛рди рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рдкрд╣рд▓реЗ рд╡рд░реНрдг рдХреЛ рдЫреЛрдбрд╝рдиреЗ рдХреЗ рдмрд╛рдж рд╢реЗрд╖ рд░рд╣реЗ рдкреНрд░рддреНрдпрдпреЛрдВ рдХреЛ рднреА рдХреНрд░рдордмрджреНрдз рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЗрд╕рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рдЖрдк рдЦреЛрдЬ рд░реЗрдВрдЬ рдХреЛ рдХрдо рдХрд░рдиреЗ рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЛ рддрдм рддрдХ рджреЛрд╣рд░рд╛ рд╕рдХрддреЗ рд╣реИрдВ рдЬрдм рддрдХ рдХрд┐ рдЖрдк рдпрд╛ рддреЛ рдПрдХ рдЦрд╛рд▓реА рд╕реАрдорд╛ рдкреНрд░рд╛рдкреНрдд рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВ, рдпрд╛ рдкреИрдЯрд░реНрди рдХреЗ рд╕рднреА рд╡рд░реНрдгреЛрдВ рдХреЛ рд╕рдлрд▓рддрд╛рдкреВрд░реНрд╡рдХ рдвреВрдВрдврддреЗ рд╣реИрдВред рдЬрд╛рд╣рд┐рд░ рд╣реИ, рдЗрд╕ рддрд░рд╣ рд╕реЗ рд╣рдореЗрдВ рдУ (| X | рд▓реЙрдЧ | рдП | рдП ) рд╕рдВрдЪрд╛рд▓рди рдХреЗ рд▓рд┐рдП рдЙрддреНрддрд░ рдорд┐рд▓рддрд╛ рд╣реИред


рдирдореВрдирд╛рдПрд╕рдкреАрд╕реА рдкреАрдШреВрдВрдЯ
рдореИрдВрдореИрдВрдореИрдВ
ippiippiippi
issippiissippiissippi
ississippiississippiississippi
рдорд┐рд╕реАрд╕рд┐рдкреАрдорд┐рд╕реАрд╕рд┐рдкреАрдорд┐рд╕реАрд╕рд┐рдкреА
рдЕрдиреБрдХрд░рдгреАрдпрдЕрдиреБрдХрд░рдгреАрдпрдЕрдиреБрдХрд░рдгреАрдп
ppippippi
рдПрд╕ рдЗрдкреНрдкреАрд╕ рдкрдкреАрдШреВрдВрдЯ рдкреА
ssippi рд╣реИрд╕реА рдПрд╕рдЖрдИрдкреАрдЖрдИsissippi
sipp sssippissippi
s sippippississippississippi



рдпрджрд┐ рд╣рдо рджреНрд╡рд┐рдЖрдзрд╛рд░реА рдЦреЛрдЬ "рд╣реЗрдб-рдСрди" рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ рддреЛ рд╣рдореЗрдВ рдмрд┐рд▓реНрдХреБрд▓ рд╡реИрд╕реА рд╣реА рдЬрдЯрд┐рд▓рддрд╛ рдорд┐рд▓рддреА рд╣реИ: рдХрд┐рдирд╛рд░реЛрдВ рдХреЗ рд╕рд╛рде рдФрд░ рдордзреНрдп рд░реЗрдЦрд╛ рдореЗрдВ рдкреВрд░реНрдг рд▓реЗрдХреНрд╕рд┐рдХреЛрдЧреНрд░рд╛рдлрд╝рд┐рдХ рддреБрд▓рдирд╛ рдирдореВрдиреЗ рдХреЗ рд╕рд╛рде: O (log | A |) рдХреА рддреБрд▓рдирд╛ рдУ ( рдПрдХреНрд╕ ! рдПрдХреНрд╕ ) рдХреА рдФрд╕рдд "рдХреАрдордд" рдХреЗ рд╕рд╛рде рд╣реЛрддреА рд╣реИред


рддреЗрдЬреА рд╕реЗ



рдмреБрд░рд╛ рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдмреЗрд╣рддрд░ рд╣реИред рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдПрдХ рд╕рд░рдгреА рддрддреНрд╡ рдХреЗ рд╕рд╛рде рд╕рдВрдкреВрд░реНрдг рдЦреЛрдЬ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреА рддреБрд▓рдирд╛ рдХрд░рдирд╛ рдЖрд╡рд╢реНрдпрдХ рдирд╣реАрдВ рд╣реИред рдмрд╛рдЗрдирд░реА рдЦреЛрдЬ рдХреЗ рдкреНрд░рддреНрдпреЗрдХ рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐ рдкрд░, рд╣рдо рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рд╕реАрдорд╛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рддреЗ рд╣реИрдВ рдЬрд┐рд╕рдХреЗ рднреАрддрд░ рд╡рд╛рдВрдЫрд┐рдд рддрддреНрд╡ рд╕реНрдерд┐рдд рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВред рдЗрд╕ рд░реЗрдВрдЬ рдХреА рд╕рднреА рдкрдВрдХреНрддрд┐рдпрд╛рдБ рдХреБрдЫ рдорд╛рдпрдиреЛрдВ рдореЗрдВ рд╕рдорд╛рди рд╣реИрдВред рдЕрд░реНрдерд╛рддреН, рдЗрди рдкрдВрдХреНрддрд┐рдпреЛрдВ рдореЗрдВ рд╡рд╛рдВрдЫрд┐рдд рд░реЗрдЦрд╛ рдХреЗ рд╕рд╛рде рдПрдХ рд╕рд╛рдорд╛рдиреНрдп рдЙрдкрд╕рд░реНрдЧ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдЬреЛ рд╕реАрдорд╛ рд╕реЗ рдмрд╛рд╣рд░ рд╣реИрдВ, рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдПрдХ рд╕рд╛рдорд╛рдиреНрдп рдЙрдкрд╕рд░реНрдЧ рдирд╣реАрдВ рд╣реЛрдЧрд╛ (рдЗрд╕ рдЕрд░реНрде рдореЗрдВ рдХрд┐ рд╣рдо рдЙрдкрд╕рд░реНрдЧ рдХреЗ рд╣рд┐рд╕реНрд╕реЗ рдХреЗ рд░реВрдк рдореЗрдВ рдирдореВрдиреЗ рдХреЗ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рд╕рдВрд╕рд╛рдзрд┐рдд рднрд╛рдЧ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВ)ред

рдорд╛рди рд▓реЗрдВ рдХрд┐ рд╣рдо рдмрд╛рдпреАрдВ рдУрд░ рдХреЗ рдирдореВрдиреЗ рдХреЗ рд╕рд╛рдорд╛рдиреНрдп рдЙрдкрд╕рд░реНрдЧ рдХреА рд▓рдВрдмрд╛рдИ рдХреЛ рд╡рд░реНрддрдорд╛рди рд╕реАрдорд╛ l = lcp ( X , S [ L ] ) рдФрд░ r = lcp ( X , S [ R ] ) рдХреЗ рдХрд┐рдирд╛рд░реЛрдВ рд╕реЗ рдмрд╛рдПрдБ рдФрд░ рджрд╛рдПрдБ рдХрд┐рдирд╛рд░реЛрдВ ( lcp - рд╕рдмрд╕реЗ рд▓рдВрдмреЗ рд╕рдордп рддрдХ рд╕рд╛рдорд╛рдиреНрдп рдЙрдкрд╕рд░реНрдЧ) рдХреЗ рдХрд┐рдирд╛рд░реЛрдВ рдХреЗ рд╕рд╛рде рдЬрд╛рдирддреЗ рд╣реИрдВ ред рдкрд╣рд▓рд╛ рдХрдерди рдпрд╣ рд╣реИ рдХрд┐ lcp рд╕реАрдорд╛ рдХреЗ рднреАрддрд░ рдХрд┐рд╕реА рднреА рд▓рд╛рдЗрди рдХреЗ рд▓рд┐рдП, рдЗрди рджреЛрдиреЛрдВ рд╕рдВрдЦреНрдпрд╛рдУрдВ рдХреЗ рдиреНрдпреВрдирддрдо рд╕реЗ рдХрдо рдирд╣реАрдВ рд╣реИрдВред рдпрджрд┐ рдпрд╣ рдРрд╕рд╛ рдирд╣реАрдВ рдерд╛, рддреЛ рдЙрдкрд╕рд░реНрдЧ рдХреЗ рдкреНрд░рд╛рд░рдВрднрд┐рдХ рднрд╛рдЧ рдХреЗ рд╕рд╛рде рдЕрдкрд░рд┐рд╡рд░реНрддрд┐рдд, рдПрдХ рдРрд╕реА рд╕реНрдерд┐рддрд┐ рд╣реЛрдЧреА рдЬрд╣рд╛рдВ рдкреНрд░рддреАрдХ рдкрд╣рд▓реЗ рдкреИрдЯрд░реНрди рдХреЗ рд╕рдВрдмрдВрдзрд┐рдд рдкреНрд░рддреАрдХ рдХреЗ рд╕рд╛рде рд╕рдВрдпреЛрдЧ рдХрд░реЗрдЧрд╛, рдлрд┐рд░ рд╕рдВрдпреЛрдЧ рдирд╣реАрдВ, рдФрд░ рдлрд┐рд░ рдлрд┐рд░ рд╕реЗ рд╕рдВрдпреЛрдЧ рд╣реЛрдЧрд╛ред рдпрд╣ рд░реЗрдВрдЬ рдХреА рдЫрдВрдЯрд╛рдИ рдХрд╛ рдЦрдВрдбрди рдХрд░реЗрдЧрд╛ред рдЗрд╕ рд╡рд┐рдЪрд╛рд░ рдХреЗ рд▓рд┐рдП рдПрдХ рдЕрдЪреНрдЫрд╛ рдЕрдиреБрднрд╡ рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рд╣рдо рдЗрд╕реЗ рдмрд╛рдж рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВрдЧреЗред рджреВрд╕рд░рд╛ рдХрдерди рд╕реНрдкрд╖реНрдЯ рд╣реИ: рдпрджрд┐ рдирдореВрдиреЗ рдХрд╛ рд╕рд╛рдорд╛рдиреНрдп рдЙрдкрд╕рд░реНрдЧ рдФрд░ рд╕реАрдорд╛ рдХреЗ рднреАрддрд░ рдХреЛрдИ рд░реЗрдЦрд╛ m = рдорд┐рдирдЯ (l, r) рд╕реЗ рдХрдо рдирд╣реАрдВ рд╣реИ, рддреЛ m рд╡рд░реНрдгреЛрдВ рдХреЛ рддреБрд░рдВрдд рдЫреЛрдбрд╝ рджрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдпрд╣ рдЬрд╛рдирдХрд░ рдХрд┐ рд╡реЗ рдХрд┐рд╕реА рднреА рдорд╛рдорд▓реЗ рдореЗрдВ рдореЗрд▓ рдЦрд╛рддреЗ рд╣реИрдВ, рдФрд░ m + 1 (рдФрд░ рдПрдХ рджрд┐рдП рдЧрдП рд▓рд╛рдЗрди рдХреЗ рд▓рд┐рдП lcp рдХреЗ рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк)ред

lcp (X, L) рдФрд░ lcp (X, R)

рдЗрд╕ рдкреНрд░рдХрд╛рд░, рд╣рдо рд╕реНрдЯреНрд░рд┐рдВрдЧ "рдорд╛рдереЗ" рдХреА рджреНрд╡рд┐рдЖрдзрд╛рд░реА рдЦреЛрдЬ рдореЗрдВ рдЕрдиреБрдХреВрд▓рд┐рдд рд╕реНрдЯреНрд░рд┐рдВрдЧ рддреБрд▓рдирд╛ рд▓рд╛рдЧреВ рдХрд░реЗрдВрдЧреЗред рд╕рдмрд╕реЗ рдЦрд░рд╛рдм рд╕реНрдерд┐рддрд┐ рдореЗрдВ, рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рд╣рдореЗрдВ рдЗрд╕рдХрд╛ рд▓рд╛рдн рдирд╣реАрдВ рдорд┐рд▓рд╛: рдпрджрд┐ рд╡рд╛рдВрдЫрд┐рдд рддрддреНрд╡ рд╕рд░рдгреА рдХреЗ рдХрд┐рдирд╛рд░реЗ рдкрд░ рд╣реИ, рд▓реЗрдХрд┐рди рдкрдбрд╝реЛрд╕реА lcp рдореЗрдВ рдмрд┐рд▓реНрдХреБрд▓ рд╕рдорд╛рди рдирд╣реАрдВ рд╣реИрдВ, рддреЛ рдЖрд░ (рдпрд╛ l) рд╣рд░ рдмрд╛рд░ рдЫреЛрдЯрд╛ рд╣реЛрдЧрд╛, рдореА рднреА рдЫреЛрдЯрд╛ рд╣реЛрдЧрд╛, рдЬрд┐рд╕рдХрд╛ рдЕрд░реНрде рд╣реИ рдХрд┐ рдЖрдкрдХреЛ рдкреНрд░рддреНрдпреЗрдХ рдХреЛ рдЬрд╛рдВрдЪрдирд╛ рд╣реЛрдЧрд╛ рдЪрд░рд┐рддреНрд░ рджреНрд╡рд╛рд░рд╛ рд▓реЙрдЧ | рдП | рд╕рдордпред рд▓реЗрдХрд┐рди рдкреНрд░рд╛рдпреЛрдЧрд┐рдХ рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рд╕реЗ рд╕рдВрдХреЗрдд рдорд┐рд▓рддрд╛ рд╣реИ рдХрд┐ рдкреНрд░рд╛рдХреГрддрд┐рдХ рдЧреНрд░рдВрдереЛрдВ рдХреЗ рд▓рд┐рдП, O (log | A || X |) рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдЦреЛрдЬ рд╕рдордп рдореЗрдВ рдХрд╛рдлреА рдХрдореА рдЖрдИ рд╣реИ, рд╣рд╛рд▓рд╛рдВрдХрд┐ рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╕реНрдкрд░реНрд╢реЛрдиреНрдореБрдЦ рджрд╡рд╛рдУрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреБрдЫ рднреА рдХрд╣рдирд╛ рдореБрд╢реНрдХрд┐рд▓ рд╣реИред

рд╕рд┐рджреНрдзрд╛рдВрдд рд░реВрдк рдореЗрдВ, рд╡реНрдпрд╛рд╡рд╣рд╛рд░рд┐рдХ рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдпрд╣ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдкрд░реНрдпрд╛рдкреНрдд рд╣реИ, рд▓реЗрдХрд┐рди рдЕрдЧрд░ рдЖрдк рд╕рдм рдХреБрдЫ рдирд┐рдЪреЛрдбрд╝рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ ...


рдФрд░ рднреА рддреЗрдЬ



рдпрд╣ рд╕реАрдорд╛ рдирд╣реАрдВ рд╣реИред рд╕рд░рдгреА рдЕрдиреБрднрд╛рдЧ рдХреЗ рдХрд┐рдирд╛рд░реЛрдВ рдХреА рд╕реНрдерд┐рддрд┐ рдЗрд╕ рдЦрдВрдб рдХреЗ рдХреЗрдВрджреНрд░ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рддреА рд╣реИ, рдФрд░ рдРрд╕реЗ рд╕рднреА рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдЬреЛ рдмрд╛рдЗрдирд░реА рдЦреЛрдЬ рдореЗрдВ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рд┐рдд рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВ, рд╡реЗ рдирд┐рд╢реНрдЪрд┐рдд рдЖрдХрд╛рд░ рдХреЗ рд╕реЗрдЯ рдХрд╛ рд╕рдмрд╕реЗрдЯ рд╣реЛрддреЗ рд╣реИрдВред рдХ | -реи рдорд╛рди рд▓реАрдЬрд┐рдП рдХрд┐ рд╣рдордиреЗ рдЗрди рд╡рд┐рдиреНрдпрд╛рд╕реЛрдВ рдореЗрдВ рдЧрдгрдирд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдЧреНрд░рд┐рдо рд░реВрдк рд╕реЗ рдорд╛рддреНрд░рд╛ m l = lcp ( S [ M ] , S [ L ] ) рдФрд░ m r = lcp ( S [ M ] , S [ R ] ), рдЬрд╣рд╛рдБ M, L рдФрд░ R рдХреЗ рдмреАрдЪ рдЦрдВрдб рдХрд╛ рдордзреНрдп рднрд╛рдЧ рд▓рд┐рдпрд╛ рд╣реИ рдЬреЛ рд╣рдо рджреНрд╡рд┐рдЖрдзрд╛рд░реА рдЦреЛрдЬ рдЪрд░рдг рдореЗрдВ рдЬрд╛рдПрдВрдЧреЗред

рдмрд╛рдЗрдирд░реА рд╕рд░реНрдЪ рдЯреАрдбреА

рдЖрдЗрдП рдХрд┐рдирд╛рд░реЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рдХреЛ рджреЗрдЦреЗрдВ, рдХрд╣рддреЗ рд╣реИрдВ, рдмрд╛рдПрдВред рдпрджрд┐ рд╣рдордиреЗ l <m l рдХреА рдЧрдгрдирд╛ рдХреА рд╣реИ, рддреЛ рдмрд╛рдпрд╛рдБ рдХрд┐рдирд╛рд░рд╛ рдордзреНрдп рдХреЗ рд╕рдорд╛рди рд╣реИ (рдФрд░ рдЙрдирдХреЗ рдмреАрдЪ рдХрд┐рд╕реА рднреА рддрддреНрд╡ рдХреЗ рд▓рд┐рдП) рдЬрд┐рддрдирд╛ рд╣рдо рдЪрд╛рд╣рддреЗ рд╣реИрдВ рдЙрд╕рд╕реЗ рдХрд╣реАрдВ рдЕрдзрд┐рдХ рдордЬрдмреВрдд рд╣реИ, рдФрд░ рддреБрд▓рдирд╛рддреНрдордХ рдкрд░рд┐рдгрд╛рдо L рдФрд░ M: lcp ( X , S) рдХреЗ рдмреАрдЪ рдкреВрд░реЗ рдЦрдВрдб рдХреЗ рд▓рд┐рдП рдкрд╣рд▓реЗ рд╕реЗ рдЬрд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИред [ рдПрдо ] ) = рдПрд▓ред рдЗрд╕рд╕реЗ рдпрд╣ рддреБрд░рдВрдд рд╕реНрдкрд╖реНрдЯ рд╣реЛрддрд╛ рд╣реИ рдХрд┐ рдорд╛рдВрдЧрд╛ рдЧрдпрд╛ рддрддреНрд╡ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдЗрд╕ рдЦрдВрдб рдореЗрдВ рдирд╣реАрдВ рд╣реИ, рдФрд░ рдпрджрд┐ рдЖрдк рдЗрд╕рдХреА рддрд▓рд╛рд╢ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рд╡рд┐рдкрд░реАрдд рдЖрдзреЗ рдореЗрдВред рдпрджрд┐ l> m l , рддреЛ рдордзреНрдп рд╡рд╛рдВрдЫрд┐рдд рдирдореВрдиреЗ рд╕реЗ рдХрдо рдмрд╛рдПрдВ рдХрд┐рдирд╛рд░реЗ рдХреЗ рд╕рдорд╛рди рд╣реИред рддреЛ lcp ( X , S [ M ] ) = m l , рдФрд░ рд╡рд╛рдВрдЫрд┐рдд рддрддреНрд╡ рдХреЛ рдмреАрдЪ рдореЗрдВ рдХрд╣реАрдВ рдЦреЛрдЬрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред

рд╕реНрд╡рд╛рднрд╛рд╡рд┐рдХ рд░реВрдк рд╕реЗ, рддрд░реНрдХ рдореЗрдВ рдХреБрдЫ рднреА рдирд╣реАрдВ рдмрджрд▓рддрд╛ рд╣реИ рдпрджрд┐ рдЖрдк рдмрд╛рдПрдВ рдХрд┐рдирд╛рд░реЗ рдХреЛ рджрд╛рдИрдВ рдУрд░ рдмрджрд▓рддреЗ рд╣реИрдВред рдХреЗрд╡рд▓ рдПрдХ рдорд╛рдорд▓реЗ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛: рдПрд▓ = рдПрдо рдПрд▓ рдФрд░ рдЖрд░ = рдПрдо рдЖрд░ (рдпрджрд┐ рдХрдо рд╕реЗ рдХрдо рдПрдХ рд╕рдорд╛рдирддрд╛ рд╕рдЪ рдирд╣реАрдВ рд╣реИ, рддреЛ рдкрд░рд┐рдгрд╛рдо рдкрд┐рдЫрд▓реЗ рдкреИрд░рд╛рдЧреНрд░рд╛рдл рдХреЗ рдЕрдиреБрд╕рд╛рд░ рдЬрд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИ)ред рдлрд┐рд░ рдпрд╣ рд╕реНрдкрд╖реНрдЯ рд╣реИ рдХрд┐ lcp ( X , S [ M ] ) рдЕрдзрд┐рдХрддрдо (l, r) рд╕реЗ рдХрдо рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдЗрд╕рдХреА рд╕рдЯреАрдХ рдкрд░рд┐рднрд╛рд╖рд╛ рдФрд░ рдпрд╣ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐ рдХрд┐рд╕ рддрд░рд╣ рд╕реЗ рд╡рд░реНрдгреЛрдВ рдХреА рддреБрд▓рдирд╛ рдХрд░рдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реЛрдЧрд╛ (рдЕрдВрдд рдореЗрдВ!) рд╕реНрдерд┐рддрд┐ рдЕрдзрд┐рдХрддрдо (l, r) рд╕реЗ рд╢реБрд░реВ рд╣реЛрддреА рд╣реИред ) +1ред

lcp (M, L) рдФрд░ lcp (M, R)

рд╣рдореЗрдВ рдХреНрдпрд╛ рдорд┐рд▓рд╛? рд╣рдо рджреНрд╡рд┐рдЖрдзрд╛рд░реА рдЦреЛрдЬ рдЪрд░рдгреЛрдВ рдХрд╛ рдПрдХ рджреВрд╕рд░реЗ рдХреЗ рд╕рд╛рде рдХреБрдЫ lcp рдХреА рддреБрд▓рдирд╛ рдХрд░рдХреЗ рднрд╛рдЧ рд▓реЗрдВрдЧреЗ, рдФрд░ рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рдЕрдЧрд░ рд╣рдореЗрдВ рд╡рд░реНрдгреЛрдВ рдХреА рддреБрд▓рдирд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдорд┐рд▓рддрд╛ рд╣реИ, рддреЛ рдЪрд░рд┐рддреНрд░ X рдХреЗ рдЕрдиреБрд╕рд╛рд░ рдПрдХ рдмрд╛рд░ рд╕реЗ рдЕрдзрд┐рдХ рдирд╣реАрдВ (рд╣рдо рдЕрдзрд┐рдХрддрдо (l, r) +1 рд▓реЗрддреЗ рд╣реИрдВ, рдЬрд┐рд╕рдХрд╛ рдЕрд░реНрде рд╣реИ рдХрд┐ рд╣рдо рдХрднреА рдкреАрдЫреЗ рдирд╣реАрдВ рд╣рдЯрддреЗ) рдЗрд╕ рдкреНрд░рдХрд╛рд░, рд╣рдо рд╕рдмрд╕реЗ рдЦрд░рд╛рдм рд╕реНрдерд┐рддрд┐ рдореЗрдВ O (рд▓реЙрдЧ | A | + | X |) рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдХреА рдЬрдЯрд┐рд▓рддрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░рддреЗ рд╣реИрдВред рд╕рдЪ рд╣реИ, рд╣рдореЗрдВ рдкрд╛рда рдП рдХреЗ рдкреНрд░рддреНрдпрдпреЛрдВ рдХреЗ рд▓рд┐рдП рдкреВрд░реНрд╡-рдЧрдгрдирд╛ рдХрд┐рдП рдЧрдП рдПрд▓рд╕реАрдкреА рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдЬреЛ рдХрд┐ рдмрд╛рдЗрдирд░реА рд╕рд░реНрдЪ рдПрд▓реНрдЧреЛрд░рд┐рджрдо рджреНрд╡рд╛рд░рд╛ рдкреНрд░реЗрд░рд┐рдд рдЦреЛрдЬ рдЯреНрд░реА рдореЗрдВ рдкрд╛рдП рдЬрд╛рддреЗ рд╣реИрдВред

рдпрд╣ рдзреНрдпрд╛рди рд░рдЦрдирд╛ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИ рдХрд┐ рдпрджрд┐ рд╣рдо m r рдХреЛ рдирд╣реАрдВ рдЬрд╛рдирддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдХреЗрд╡рд▓ m l рдХреЛ рдЬрд╛рдирддреЗ рд╣реИрдВ, рддреЛ рдЪрд┐рдВрддрд╛ рдХреА рдХреЛрдИ рдмрд╛рдд рдирд╣реАрдВ рд╣реИред рд╣рдо рдкрд╣рд▓реЗ рд╕реЗ рдХрд╣рдиреЗ рдХреЗ рдЕрд╡рд╕рд░ рд╕реЗ рд╡рдВрдЪрд┐рдд рд╣реИрдВ рдХрд┐ рдХреЛрдИ рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐ рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдЗрд╕рд╕реЗ рдЬрдЯрд┐рд▓рддрд╛ рдирд╣реАрдВ рдмрд┐рдЧрдбрд╝рддреА рд╣реИ: рд╣рдо рд╕рд┐рд░реНрдл рджрд╛рд╣рд┐рдиреЗ рдХрд┐рдирд╛рд░реЗ рдкрд░ рдирд╣реАрдВ рджрд┐рдЦреЗрдВрдЧреЗ, рдХреЗрд╡рд▓ рдмрд╛рдИрдВ рдУрд░ред рдпрджрд┐ l <m l , рддреЛ рд╣рдо рджреВрд╕рд░реЗ рдЖрдзреЗ рднрд╛рдЧ рдореЗрдВ рдЖрдЧреЗ рджреЗрдЦрддреЗ рд╣реИрдВ, рдФрд░ l рд╕рдВрд░рдХреНрд╖рд┐рдд рд╣реИ, рдпрджрд┐ l> m l , рддреЛ r рд╣рдо m l рдХреЗ рд░реВрдк рдореЗрдВ рд▓реЗрддреЗ рд╣реИрдВ рдФрд░ рдЗрд╕ рдЫрдорд╛рд╣реА рдореЗрдВ рджреЗрдЦрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдпрджрд┐ l = m l , рддреЛ рд╣рдо рдорд╛рдзреНрдп рддрддреНрд╡ рдХреА рддреБрд▓рдирд╛ рд╡рд╛рдВрдЫрд┐рдд рд╕реНрдЯреНрд░рд┐рдВрдЧ рд╕реЗ рдХрд░рддреЗ рд╣реИрдВред рдПрд▓ + 1 рд╕реНрдерд┐рддрд┐ рд╕реЗ рд╢реБрд░реВред рд╣рдо рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ рд╡рд╛рдкрд╕ рдирд╣реАрдВ рд▓реМрдЯреЗрдВрдЧреЗ, рдЬрд┐рд╕рдХрд╛ рдЕрд░реНрде рд╣реИ рдХрд┐ рдЖрдк рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдХреА рдЬрдЯрд┐рд▓рддрд╛ рд╕реЗ рд╕рдордЭреМрддрд╛ рдХрд┐рдП рдмрд┐рдирд╛ рдХреЗрд╡рд▓ рдмрд╛рдПрдВ рдХрд┐рдирд╛рд░реЛрдВ рдХреЗ рд▓рд┐рдП рдПрд▓рд╕реАрдкреА рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред


LCP рдкреНрд░реАрдкреНрд░реЛрд╕реЗрд╕рд┐рдВрдЧ



рдЬреИрд╕рд╛ рдХрд┐ рдЖрдкрдХреЛ рдпрд╛рдж рд╣реИ, рдкреНрд░рднрд╛рд╡реА рд╡рд┐рдХрд▓реНрдк рдЦреЛрдЬ рдХреЗ рд▓рд┐рдП рд╣рдореЗрдВ рдкреНрд░рддреНрдпрдп рдХреЗ рдХреБрдЫ рд╕рдВрдпреЛрдЬрдиреЛрдВ рдХреЗ рд▓рд┐рдП рдкреВрд░реНрд╡-рдЧрдгрдирд╛ рдХрд┐рдП рдЧрдП lcp рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдереАред рдЙрдиреНрд╣реЗрдВ рдХреИрд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд┐рдпрд╛ рдЬрд╛рдП, рдпрд╣ рд╕рдордЭрд╛рдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реИред рдЖрдорддреМрд░ рдкрд░ рд╕реЗрдЧрдореЗрдВрдЯ рдкрд░ рдиреНрдпреВрдирддрдо рдЦреЛрдЬрдиреЗ рдХреА рд╕рдорд╕реНрдпрд╛ рдХреЗ рд▓рд┐рдП рддрд░реАрдХреЗ рдиреАрдЪреЗ рдЖрддреЗ рд╣реИрдВ - рдЖрд░рдПрдордХреНрдпреВ, рдЗрд╕рд▓рд┐рдП рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдХреА рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдЬрдЯрд┐рд▓рддрд╛ рдореЛрдЯреЗ рддреМрд░ рдкрд░ рдЗрд╕ рд╡рдЬрд╣ рд╕реЗ рд╣реИ рдХрд┐ рдЖрдк рдЖрд░рдПрдордХреНрдпреВ рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдореЗрдВ рдХрд┐рддрдиреЗ рдХреБрд╢рд▓ рд╣реИрдВред рдХрдо рдпрд╛ рдЬреНрдпрд╛рджрд╛ рд╕рд░рд▓ рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдореЗрдВ рдкреНрд░реАрдкреНрд░реЛрд╕реЗрд╕рд┐рдВрдЧ рдкрд░ O (NlogN) рдФрд░ рдЕрдиреБрд░реЛрдз рдкрд░ O (1) рд╣реЛрдЧрд╛ред рдпрд╣реА рд╣реИ, рдпрджрд┐ рдЖрдк рдУ (NlogN) рдореЗрдВ рдПрдХ рдкреНрд░рддреНрдпрдп рд╕рд░рдгреА рдХреЗ рдирд┐рд░реНрдорд╛рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдХрд╛рдлреА рд╕рдВрднрд╡ рд╣реИред рдмреЗрд╢рдХ, рдпрджрд┐ рдЖрдк рд░реИрдЦрд┐рдХ рд╕рдордп рдореЗрдВ рдПрдХ рдкреНрд░рддреНрдпрдп рд╕рд░рдгреА рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рдЖрдкрдХреЛ рдирд┐рд░рдВрддрд░ рдкреНрд░рд╢реНрдиреЛрдВ рдХреЗ рд╕рд╛рде рд░реИрдЦрд┐рдХ рд╕рдордп рдХреЗ рд▓рд┐рдП RMQ рдкреНрд░реАрдкреНрд░реЛрд╕реЗрд╕рд┐рдВрдЧ рдПрд▓реНрдЧреЛрд░рд┐рджрдо рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред

рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рд╣рдо рддрдерд╛рдХрдерд┐рдд рдПрд▓рд╕реАрдкреА рд╕рд░рдгреА рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдХрд░рддреЗ рд╣реИрдВ - рдпрд╣ рд▓реЗрдХреНрд╕рд┐рдХреЛрдЧреНрд░рд╛рдлрд┐рдХ рд░реВрдк рд╕реЗ рдЖрд╕рдиреНрди рдкреНрд░рддреНрдпрдпреЛрдВ рдХреЗ рдмреАрдЪ рдПрд▓рд╕реАрдкреА рдореВрд▓реНрдпреЛрдВ рдХреА рдПрдХ рд╕рд░рдгреА рд╣реИ (рд╣рдордиреЗ рдкреНрд░рддреНрдпрдп рд╕рд░рдгреА рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдХрд┐рдпрд╛ рд╣реИ, рдЬреЛ рдкреНрд░рддреНрдпрдп рдХрд┐рд╕реА рдкрдбрд╝реЛрд╕реА рдХреЗ рд╕рд╡рд╛рд▓реЛрдВ рдХрд╛ рдХрд╛рд░рдг рдирд╣реАрдВ рдмрдирддрд╛ рд╣реИ)ред рдпрджрд┐ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдПрдХ lcp рд╕рд░рдгреА рд╣реИ, рддреЛ рджреЛ рддрддреНрд╡реЛрдВ рдХреЗ рдмреАрдЪ lcp рдЦреЛрдЬрдиреЗ рд╕реЗ lcp рд╕рд░рдгреА рдХреЗ рджрд┐рдП рдЧрдП рдЦрдВрдб рдкрд░ рдиреНрдпреВрдирддрдо рдорд╛рди рдЬреНрдЮрд╛рдд рдХрд░рдирд╛ рдХрдо рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ, рдЕрд░реНрдерд╛рддреН RMQ рдХрд╛рд░реНрдп - рдЦрдВрдб рдкрд░ рдиреНрдпреВрдирддрдо - рдЕрдкрдиреЗ рд╢реБрджреНрдз рд░реВрдк рдореЗрдВ рдЦреЛрдЬрдирд╛ред рдРрд╕рд╛ рдХреНрдпреЛрдВ рд╣реЛрддрд╛ рд╣реИ, рдкреНрд░рддреНрдпрдп рдХреЗ рдЖрджреЗрд╢реЛрдВ рдХреЗ рд╡рд┐рдЪрд╛рд░ рд╕реЗ рдпрд╣ рд╕реНрдкрд╖реНрдЯ рд╣реИ: рдпрджрд┐ рджреЛ рд░реЗрдЦрд╛рдУрдВ рдХреЗ рдмреАрдЪ рдЕрдзрд┐рдХ lcp рд╣реЛрддрд╛, рддреЛ рдЙрдирдХреЗ рдмреАрдЪ рдХреА рд╕рднреА рдкрдВрдХреНрддрд┐рдпреЛрдВ рдореЗрдВ рд╢реБрд░реБрдЖрдд рдореЗрдВ рдХрдо рд╕реЗ рдХрдо рд╕рдорд╛рди рд╡рд░реНрдг рд╣реЛрддреЗ, рдФрд░ рдЗрди рдкрдВрдХреНрддрд┐рдпреЛрдВ рдХреЗ рдмреАрдЪ рд╕рднреА lcp рдЪрд░рдо рдХреЗ рдкрд╛рд░рд╕реНрдкрд░рд┐рдХ lcp рд╕реЗ рдХрдо рдирд╣реАрдВ рд╣реЛрддреЗред рддрддреНрд╡реЛрдВред

рдПрдХ lcp рд╕рд░рдгреА рдмрдирд╛рдирд╛ рдХрд╛рдлреА рд╕рд░рд▓ рд╣реИред рдмреЗрд╢рдХ, рдкреНрд░рддреНрдпрдп рд╕рд░рдгреА рд╕реЗ рдЧреБрдЬрд░рдирд╛ рдФрд░ рдкрдбрд╝реЛрд╕реА рддрддреНрд╡реЛрдВ рдХреЗ рдПрд▓рд╕реАрдкреА рдХреА рдЧрдгрдирд╛ рдХрд░рдирд╛ рдХрд╛рдо рдирд╣реАрдВ рдХрд░реЗрдЧрд╛ - рдпрд╣ рдУ (рдПрди 2 ) рд╣реИред рд▓реЗрдХрд┐рди рдЕрдЧрд░ рдЖрдк рд╕рд╣реА рдХреНрд░рдо рдореЗрдВ рд╕рд░рдгреА рд╕реЗ рдЧреБрдЬрд░рддреЗ рд╣реИрдВ, рддреЛ рдЖрдк рдЧрдгрдирд╛ рдХреЗ рд▓рд┐рдП рдкрд┐рдЫрд▓реЗ рдЪрд░рдг рд╕реЗ рдЬрд╛рдирдХрд╛рд░реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдЕрд░реНрдерд╛рддреН, рдпрджрд┐ рдЖрдк рдореВрд▓ рдкрдВрдХреНрддрд┐ рдореЗрдВ рджрд┐рдЦрд╛рдИ рджреЗрдиреЗ рд╡рд╛рд▓реЗ рдкреНрд░рддреНрдпрдпреЛрдВ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдХреНрд░рдордмрджреНрдз рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдкреНрд░рддреНрдпреЗрдХ рдЪрд░рдг рдкрд░ рдкрд┐рдЫрд▓реЗ рдЪрд░рдг рдХреА рддреБрд▓рдирд╛ рдореЗрдВ lcp 1 рд╕реЗ рдЕрдзрд┐рдХ рдирд╣реАрдВ рдШрдЯ рд╕рдХрддрд╛ рд╣реИ, рдЕрд░реНрдерд╛рдд рдпрд╣ рдЕрдзрд┐рдХ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рдпрд╣ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдирд╣реАрдВ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдпрджрд┐ рдпрд╣ рдмрди рдЬрд╛рддрд╛ рд╣реИ рдХрдо рддреЛ рдХреЗрд╡рд▓ 1. рдпрд╣ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХрд╛рд░рдг рд╕реЗ рд╣реЛрддрд╛ рд╣реИред рдпрджрд┐ рдЖрдкрдХреЛ рдкрддрд╛ рд╣реИ рдХрд┐ lcp ( A [i ..], A [j ..] = l рд╣реИ, рддреЛ рдкрд╣рд▓реЗ рд╡рд░реНрдг рдХреЛ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдЫреЛрдбрд╝рдиреЗ рд╕реЗ рдпрд╣ рдПрдХ рд╕реЗ рдХрдо рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ: lcp ( A [i + 1 ..], A [j +1 ..]) = рдПрд▓ -1ред рдмреЗрд╢рдХ, рдЕрдЧрд░ i-th рдФрд░ j-th рдкреНрд░рддреНрдпрдп рд╕рдореАрдкрд╕реНрде рд░реВрдк рд╕реЗ рдЖрд╕рдиреНрди рд╣реЛ рдЧрдП рд╣реИрдВ, рддреЛ рдпрд╣ рдЧрд╛рд░рдВрдЯреА рдирд╣реАрдВ рджреЗрддрд╛ рд╣реИ рдХрд┐ i + 1st рдФрд░ j + 1st рдЖрд╕рдиреНрди рд╣реЛрдВрдЧреЗ - рджреВрд╕рд░реЛрдВ рдХреЗ рдмреАрдЪ рд╕рдВрднрд╡рддрдГ рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рдкрдЪреНрдЪрд░ рд╣реЛрдЧрд╛ред рд▓реЗрдХрд┐рди, рдЬреИрд╕рд╛ рдХрд┐ рд╣рдо рдкрд╣рд▓реЗ рд╣реА рдкрддрд╛ рд▓рдЧрд╛ рдЪреБрдХреЗ рд╣реИрдВ, рдЙрдирдХреЗ рдмреАрдЪ рдХрд╛ lcp рдЙрдирдХреЗ рдмреАрдЪ рдХреЗ рдкреВрд░реЗ рдЦрдВрдб рдкрд░ рдиреНрдпреВрдирддрдо lcp рд╣реИ, рдЬрд┐рд╕рдХрд╛ рдЕрд░реНрде рд╣реИ рдХрд┐ i + 1th рдкреНрд░рддреНрдпрдп рдФрд░ lexicographically рдХреЗ рдмреАрдЪ lcp рдХрд╛ рдкрд╛рд▓рди рдХрд░рдирд╛ l-1 рд╕реЗ рдХрдо рдирд╣реАрдВ рд╣реИред


#рдкреНрд░рддреНрдпрдпрдХрджрдоLCP
1рдореИрдВ101
2ippi71
3issippi44
4ississippi20
5рдорд┐рд╕реАрд╕рд┐рдкреА10
6рдЕрдиреБрдХрд░рдгреАрдп91
7ppi80
8Sippi62
9sissippi31
10ssippi53
11ssissippiрдЫреЛрдбрд╝



рдпрд╣ рдЖрдкрдХреЛ рд╕рднреА рд╡рд░реНрдгреЛрдВ рдХреЛ рджрдВрдбрд╛рддреНрдордХ (рдПрд▓ -1) рддрдХ рдЫреЛрдбрд╝рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рд╣рдо рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рд╣реИрдВ рдХрд┐ рд╡реЗ рд╕рдорд╛рди рд╣реИрдВ, рдФрд░ рдХреЗрд╡рд▓ рдПрд▓-рд╡реЗрдВ рдЪрд░рд┐рддреНрд░ рдФрд░ рдЖрдЧреЗ рдХреА рддреБрд▓рдирд╛ рдХрд░реЗрдВред рдЗрд╕рдХрд╛ рдорддрд▓рдм рдпрд╣ рд╣реИ рдХрд┐ рд╣рдо рдЬреЛ рднреА рдЪреЗрдХ рдХрд░рддреЗ рд╣реИрдВ, рд╡реЗ рдпрд╛ рддреЛ рд╡рд░реНрддрдорд╛рди lcp рдХреЛ рдмрдврд╝рд╛рддреЗ рд╣реИрдВ рдпрд╛ рд╣рдореЗрдВ рдЕрдЧрд▓реЗ рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐ рдкрд░ рдЬрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдордЬрдмреВрд░ рдХрд░рддреЗ рд╣реИрдВред рдЗрд╕ рдкреНрд░рдХрд╛рд░, рд╢рд╛рдмреНрджрд┐рдХ рд░реВрдк рд╕реЗ рдкрд┐рдЫрд▓реЗ рдПрдХ рдХреЛ рдЫреЛрдбрд╝рдХрд░ рд╕рднреА рдкреНрд░рддреНрдпрдпреЛрдВ рдХреЛ рдкрд╛рд░рд┐рдд рдХрд░рдиреЗ (рдЗрд╕реЗ рдЫреЛрдбрд╝ рджрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП), рд╣рдореЗрдВ рд░реИрдЦрд┐рдХ рд╕рдордп рдУ (рдПрди) рдореЗрдВ рдПрдХ рдПрд▓рд╕реАрдкреА рд╕рд░рдгреА рдорд┐рд▓рддреА рд╣реИред

рдЦреИрд░, рдпрд╣ рд╕рдм рд╣реИред рдпрд╣ рд╣рдорд╛рд░реЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рдкреНрд░рддреНрдпрдпреЛрдВ рдХреЗ рдЬреЛрдбрд╝реЗ рдХреЗ рд▓рд┐рдП RMQ рдЦреЛрдЬрдиреЗ рдХреЗ рд▓рд┐рдП рдмрдиреА рд╣реБрдИ рд╣реИред RMQ рд╕рдорд╛рдзрд╛рди рдореЗрдВ рдкреНрд░реАрдкреНрд░реЛрд╕реЗрд╕рд┐рдВрдЧ рд╢рд╛рдорд┐рд▓ рд╣реИ рдФрд░ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рддрддреНрд╡реЛрдВ рдХреЗ рдмреАрдЪ рдиреНрдпреВрдирддрдо рдкреНрд░рд╢реНрдиреЛрдВ рдХреЗ рдЬрд╡рд╛рдм рд╣реИрдВред рдЪреВрдВрдХрд┐ рдореБрдЦреНрдп рдХрдореНрдкреНрдпреВрдЯреЗрд╢рдирд▓ рд▓реЛрдб рдкреВрд░реНрд╡-рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг рд╣реИ, рдФрд░ рдХреНрд╡реЗрд░реА рдирд┐рд╖реНрдкрд╛рджрди рдУ (1) рдХреЗ рд╕рд╛рде рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдЖрдо рддреМрд░ рдкрд░ рдмреЛрд▓рдирд╛, рд╣рдорд╛рд░реЗ рд▓рд┐рдП рдмреНрдпрд╛рдЬ рдХреА рдЬреЛрдбрд╝реА рдХреЛ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рд▓рд┐рдЦрдирд╛ рдФрд░ рдЙрдирдХреЗ рдмреАрдЪ lcp рдХрд░рдирд╛ рдЖрд╡рд╢реНрдпрдХ рдирд╣реАрдВ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рд╣рдо O (1) рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╡рд╛рдм рджреЗ рд╕рдХрддреЗ рд╣реИрдВред , рдмрд╛рдЗрдирд░реА рдЦреЛрдЬ рдореЗрдВ рднреВрдорд┐рдХрд╛ рдирд┐рднрд╛рдиреЗ рд╡рд╛рд▓реЛрдВ рдХреЛ рд╢рд╛рдорд┐рд▓ рдХрд░реЗрдВред рдпрд╣ рджреЗрдЦрддреЗ рд╣реБрдП рдХрд┐ рдпрд╣ рд╕реЛрдЪрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреЛ рд╕рдорд╛рдкреНрдд рдХрд░рддрд╛ рд╣реИ рдХрд┐ рд╕рдВрдЧреНрд░рд╣реАрдд рдореВрд▓реНрдпреЛрдВ рдХреЛ рдХреИрд╕реЗ рд╕рдВрдмреЛрдзрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдП, рдпрд╣ рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рд╣реИред рдпрджрд┐ рдЖрдк рдЕрднреА рднреА рдкрд╣рд▓реЗ рд╕реЗ рдЧрдгрдирд╛ рдХрд┐рдП рдЧрдП рдлреЙрд░реНрдо рдореЗрдВ lcp рдХреЛ рд╕реНрдЯреЛрд░ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рдЖрдкрдХреЛ рдЦреЛрдЬ рдЯреНрд░реА рдореЗрдВ рд░рд╛рдЬреНрдпреЛрдВ рдХреЛ рд╕рд╣реА рдврдВрдЧ рд╕реЗ рдирдВрдмрд░ рджреЗрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ - рдореЗрдореЛрд░реА рдореЗрдВ рд╕реНрдерд╛рди рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдкрдврд╝реЗрдВ рдФрд░ рдмрд╛рдЗрдирд░реА рд╣реАрдк рдореЗрдВ рд╕рдВрдмреЛрдзрд┐рдд рдХрд░реЗрдВред

рдореИрдВрдиреЗ RMQ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдХреЗ рддрд░реАрдХреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдирд╣реАрдВ рд▓рд┐рдЦрд╛ - рд╣реЗ (NlogN) рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рд░рд▓ рд╕рдВрд╕реНрдХрд░рдг рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ Habr├й рдкрд░ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдПрдХ рдЕрдЪреНрдЫрд╛ рд▓реЗрдЦ рдерд╛, рдФрд░, рдореБрдЭреЗ рдЖрд╢рд╛ рд╣реИ, рдПрдХ рдирд┐рд░рдВрддрд░рддрд╛ рд╣реЛрдЧреА рдЬрд┐рд╕рдореЗрдВ рд╡реЗ O (N - Farah-Colton рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо ) рдХреЗ рд▓рд┐рдП рдПрдХ рдХрдЯреНрдЯрд░ рд╕рдВрд╕реНрдХрд░рдг рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд▓рд┐рдЦрддреЗ рд╣реИрдВред рд╢рд░рд╛рдмреА ред


рдПрдХ рдкреНрд░рддреНрдпрдп рд╕рд░рдгреА рдХрд╛ рдирд┐рд░реНрдорд╛рдг



рдорд╣рд╛рди, рдпрд╣рд╛рдВ рд╣рдо рдЬрд╛рдирддреЗ рд╣реИрдВ рдХрд┐ рдкреНрд░рддреНрдпрдп рд╕рд░рдгреА рдХреИрд╕реЗ рд▓рд╛рдЧреВ рдХрд░реЗрдВ, рд▓реЗрдХрд┐рди рдпрд╣ рдХрд╣рд╛рдВ рд╕реЗ рдЖрдПрдЧрд╛? рдЬрд╛рд╣рд┐рд░ рд╣реИ, рдЗрд╕реЗ рдкреНрд░рддреНрдпрдХреНрд╖ рддрд░реАрдХреЗ рд╕реЗ рдмрдирд╛рдирд╛, рдкреНрд░рддреНрдпрдпреЛрдВ рдХреЛ рдЫрд╛рдВрдЯрдирд╛, рдПрдХ рд▓рдВрдмрд╛ рд╡реНрдпрд╡рд╕рд╛рдп рд╣реИ - O (N 2 logN), рдЬрд╣рд╛рдБ = | рдП | рдРрд╕реЗ рдХрдИ рдПрд▓реНрдЧреЛрд░рд┐рджрдо рд╣реИрдВ рдЬреЛ O (NlogN) рдХреЗ рд▓рд┐рдП рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВ, O (Nlog) рдХреЗ рд▓рд┐рдП рдХрд╛рдо рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рд▓реЛрдЧ рд╣реИрдВред рд╡реЗ рдУ (рдПрди) рдмрд╣реБрдд рднреНрд░рдорд┐рдд рд╣реИрдВ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдкрд╣рд▓реЗ рдПрдХ рдкреНрд░рддреНрдпрдп рдкреЗрдбрд╝ рдХрд╛ рдирд┐рд░реНрдорд╛рдг, рдФрд░ рдлрд┐рд░ рдЙрд╕рдореЗрдВ рд╕реЗ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдПрдХ рдкреНрд░рддреНрдпрдп рд╕рд░рдгреА рдПрдХрддреНрд░ рдХрд░рддреЗ рд╣реИрдВ)ред рдпрджрд┐ рдХрд┐рд╕реА рд╡рд┐рд╢реЗрд╖ рдХрд╛рд░реНрдп рдореЗрдВ рдЕрдзрд┐рдХрддрдо рджрдХреНрд╖рддрд╛ рдЗрддрдиреА рдорд╣рддреНрд╡рдкреВрд░реНрдг рдирд╣реАрдВ рд╣реИ, рддреЛ рдЖрдкрдХреЛ рдХреЛрдб рдХреА рд╕рдордЭ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕реЛрдЪрдирд╛ рдЪрд╛рд╣рд┐рдП рдФрд░ NlogN рд╡рд┐рдХрд▓реНрдк рдкрд░ рд░реБрдХрдирд╛ рдЪрд╛рд╣рд┐рдПред рдЕрдЧрд▓рд╛, рд╣рдо рдЗрди рд╢реНрд░реЗрдгрд┐рдпреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рд░рдирд┐рдВрдЧ рдПрд▓реНрдЧреЛрд░рд┐рджрдо рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВрдЧреЗред


рдкреНрд░рддрд┐ рд╣реЗ (NlogN)



рдпрд╛рдж рд░рдЦреЗрдВ рдХрд┐ рдмрд┐рдЯрд╡рд╛рдЗрдЬрд╝ рдЫрдБрдЯрд╛рдИ рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддреА рд╣реИ: рдкрд╣рд▓реЗ рд╣рдо рдирд┐рдЪрд▓реЗ рдХреНрд░рдо рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдЧрд┐рдирддреА рдХрд░рдХреЗ рддрддреНрд╡реЛрдВ рдХреЛ рдмрд╛рд▓реНрдЯреА рдореЗрдВ рд╡рд┐рддрд░рд┐рдд рдХрд░рддреЗ рд╣реИрдВ, рдлрд┐рд░ рдЕрдЧрд▓реЗ рдмрд┐рдЯ рдХреЗ рд╕рд╛рде рднреА рдРрд╕рд╛ рд╣реА рдХрд░рддреЗ рд╣реИрдВ, рдЖрджрд┐ред рдпрд╣рд╛рдВ рд╣рдо рдПрдХ рд╕рдорд╛рди рддрд░реАрдХреЗ рд╕реЗ рдХрд╛рд░реНрдп рдХрд░реЗрдВрдЧреЗ, рд▓реЗрдХрд┐рди рдлрд┐рд░ рднреА рдереЛрдбрд╝рд╛ рдЕрд▓рдЧ рдврдВрдЧ рд╕реЗ - рдпрджрд┐ рд╣рдо рд╕реАрдзреЗ рдкреНрд░рддреНрдпрдп рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдмрд┐рдЯрд╡рд╛рдЗрдЬрд╝ рд╕реЙрд░реНрдЯрд┐рдВрдЧ рд▓рд╛рдЧреВ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рд╣рдореЗрдВ рдУ (рдПрди 2 ) рдорд┐рд▓рддрд╛ рд╣реИред

рдорд╛рди рд▓реАрдЬрд┐рдП рдХрд┐ рдХреБрдЫ рдХрджрдо рдкрд░ рд╣рдордиреЗ рдПрдЪ рдкрд╣рд▓реЗ рд╡рд░реНрдгреЛрдВ рдХреЗ рдЕрдиреБрд╕рд╛рд░ рдЫрд╛рдВрдЯреЗ рдЧрдП (рдпрд╛ рдмрд╛рд▓реНрдЯреА рдореЗрдВ рд╡реНрдпрд╡рд╕реНрдерд┐рдд рдХрд┐рдП рдЧрдП) рдкрдВрдХреНрддрд┐рдпрд╛рдБред рд╣рдо рд▓рд╛рдЗрдиреЛрдВ рдХреЗ рдЗрди рд╣рд┐рд╕реНрд╕реЛрдВ рдХреЛ рдЙрдирдХреЗ рдмрд╛рд╕реНрдХреЗрдЯ рдХреА рд╕рдВрдЦреНрдпрд╛ рдХреЗ рд╕рд╛рде рд╕рдВрдЦреНрдпрд╛ рджреЗ рд╕рдХрддреЗ рд╣реИрдВред рд▓реЗрдХрд┐рди рдкреНрд░рддреНрдпреЗрдХ рдкреНрд░рддреНрдпрдп S [ i ] = A [ i .. ] рди рдХреЗрд╡рд▓ рд╕рд░рдгреА рдХреЗ рдПрдХ рддрддреНрд╡ рдХреЗ рд░реВрдк рдореЗрдВ рдкрд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдмрд▓реНрдХрд┐ рд╕рд░рдгреА рдХреЗ рдЕрдиреНрдп рддрддреНрд╡реЛрдВ рдХреЗ рднрд╛рдЧ рдХреЗ рд░реВрдк рдореЗрдВ рднреА рдкрд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдкреНрд░рддреНрдпрдп S [ iH ] рдХреА рд╕реНрдерд┐рддрд┐ H рдХреЗ рд╕реНрдерд╛рдирд╛рдкрдиреНрди рдХреЗ рд░реВрдк рдореЗрдВ (рд╕реНрдкрд╖реНрдЯрддрд╛ рдХреЗ рд▓рд┐рдП рдЕрдВрдд рдореЗрдВ рд╕реАрдорд╛ рдкреНрд░рднрд╛рд╡ рдЫреЛрдбрд╝рдирд╛) рддрд╛рд░ - рдЕрдВрдд рддрдХ рдкреНрд░рд╣рд░реА рдХреА рд╡рд╛рдВрдЫрд┐рдд рд╕рдВрдЦреНрдпрд╛ рд▓рд┐рдЦрдХрд░ рдЙрдиреНрд╣реЗрдВ рджрд░рдХрд┐рдирд╛рд░ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ)ред рдЕрд░реНрдерд╛рддреН, рдЯреЛрдХрд░реА рд╕рдВрдЦреНрдпрд╛рдУрдВ рдХреЗ рд╕рд╛рде рдкрд╣рд▓реЗ рдПрдЪ рдкреНрд░рддреНрдпрдп рд╡рд░реНрдгреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рд╣реЛрддреА рд╣реИ, рд╣рдо рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рджреВрд╕рд░реЗ рдПрдЪ рд╡рд░реНрдгреЛрдВ рдХреЛ рднреА рд╕рдВрдЦреНрдпрд╛ рджреЗрддреЗ рд╣реИрдВред рдлрд┐рд░ рд╣рдореЗрдВ рдПрдХ рдЬреЛрдбрд╝реА рд╕рдВрдЦреНрдпрд╛ рдорд┐рд▓рддреА рд╣реИ рдЬрд┐рд╕рдореЗрдВ рдЯреЛрдХрд░реА рд╕рдВрдЦреНрдпрд╛ (рдХреБрдЫ рдХрджрдо рдХреА) рд╣реЛрддреА рд╣реИред рдЗрди рдЬреЛрдбрд╝реЛ рдХреЛ рдмрд┐рдЯрд╡рд╛рдЗрдЬрд╝ рд╕реЙрд░реНрдЯ рдХрд░рдХреЗ, рд╣рдо 2H рдкрд╣рд▓реЗ рдЕрдХреНрд╖рд░ рджреНрд╡рд╛рд░рд╛ рдмрд╛рд╕реНрдХреЗрдЯ рдореЗрдВ рдХреНрд░рдорд╛рдИ рдЧрдИ рдкрдВрдХреНрддрд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдП O (N) рдкреНрд░рд╛рдкреНрдд рдХрд░рддреЗ рд╣реИрдВред рдЗрд╕ рдкреНрд░рдХрд╛рд░, рдкреНрд░рддреНрдпреЗрдХ рдЪрд░рдг рдкрд░ рд╕рдВрд╕рд╛рдзрд┐рдд рд╡рд░реНрдгреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рджреЛрдЧреБрдиреА рд╣реЛ рдЬрд╛рдПрдЧреАред рдпрд╣ O (logN) рдЪрд░рдгреЛрдВ рдФрд░ O (NlogN) рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдХреА рд╕рдордЧреНрд░ рдЬрдЯрд┐рд▓рддрд╛ рджреЗрддрд╛ рд╣реИред

O (NlogN)

рдкрд╣рд▓реЗ рдЪрд░рдг рдХреЗ рд╕рдВрдмрдВрдз рдореЗрдВ рдПрдХ рдФрд░ рдЫреЛрдЯреА рдЯрд┐рдкреНрдкрдгреАред рдпрджрд┐ рдЕрдЧрд▓реЗ рдЪрд░рдгреЛрдВ рдореЗрдВ рд╣рдореЗрдВ рдЯреЛрдХрд░реА рд╕рдВрдЦреНрдпрд╛рдУрдВ рдХреЛ рдХреНрд░рдордмрджреНрдз рдХрд░рдирд╛ рд╣реИ, рдЬрд┐рд╕рд╕реЗ рдмрд┐рдЯрд╡рд╛рдЗрдЬрд╝ рдЫрдБрдЯрд╛рдИ рдореЗрдВ рд╕рдорд╕реНрдпрд╛ рди рдЖрдП, рддреЛ рдкрд╣рд▓рд╛ рдХрджрдо рд▓рд╛рдЗрдиреЛрдВ рдХреЛ рдкрд╣рд▓реЗ рд╡рд░реНрдг рджреНрд╡рд╛рд░рд╛ рдХреНрд░рдордмрджреНрдз рдХрд░рдирд╛ рд╣реИред рд╡рд░реНрдгрдорд╛рд▓рд╛ рдХреА рдкреНрд░рдХреГрддрд┐ рдХреЗ рдЖрдзрд╛рд░ рдкрд░, рдпрд╣ рдкрддрд╛ рдЪрд▓ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдмрд┐рдЯрд╡рд╛рдЗрдЬрд╝ рдЫрдБрдЯрд╛рдИ рд╕рдВрднрд╡ рдирд╣реАрдВ рд╣реИред рдлрд┐рд░ рдЖрдк O (NlogN) рдЬрдЯрд┐рд▓рддрд╛ рдХреЗ рд╕рд╛рде рддреБрд▓рдирд╛ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдХрд┐рд╕реА рднреА рдЕрдиреНрдп рдЫрдВрдЯрд╛рдИ рдХреЛ рд▓рд╛рдЧреВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ O (N) рд╕реЗ рдкрд░реЗ рдЯреЛрдХрд░реА рдХреА рд░реЗрдВрдЬ рдкрд╛ рд╕рдХрддреЗ рд╣реИрдВред рдпрд╣ рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдХреА рд╕рдордЧреНрд░ рдЬрдЯрд┐рд▓рддрд╛ рдХреЛ рдирд╣реАрдВ рдмрджрд▓реЗрдЧрд╛ред


рдкреНрд░рддрд┐ рд╣реЗ (N)



рдпрд╣ 2003 рдореЗрдВ рдХрд╛рд░реНрдХреЗрдиреЗрди рдПрдВрдб рд╕реИрдВрдбрд░реНрд╕ рджреНрд╡рд╛рд░рд╛ рдкреНрд░рдХрд╛рд╢рд┐рдд рдПрдХ рдХрд╛рдлреА рдирдпрд╛ рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рд╣реИредрдореИрдВ рдЖрдкрдХреЛ рддреБрд░рдВрдд рдЪреЗрддрд╛рд╡рдиреА рджреЗрддрд╛ рд╣реВрдВ рдХрд┐ рдпрд╣ рдПрд▓реНрдЧреЛрд░рд┐рдердо рдХреЗрд╡рд▓ рд╡рд░реНрдгрдорд╛рд▓рд╛ рдореЗрдВ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рдЬрд┐рд╕рдХреЗ рд╡рд░реНрдгреЛрдВ рдХреЛ O (N) рд╕рдордп рдореЗрдВ рдХреНрд░рдорд╛рдВрдХрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ (рдХреНрд░рдорд╛рдВрдХрд┐рдд рдХреНрд░рдордмрджреНрдз рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмрд░рд╛рдмрд░ рд╣реИ, рдЕрд░реНрдерд╛рдд, рдЖрдкрдХреЛ рдмрд┐рдЯ рд╕реЙрд░реНрдЯрд┐рдВрдЧ рджреНрд╡рд╛рд░рд╛ O (N) рдХреЛ рд╕реЙрд░реНрдЯ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ)ред рдЕрдиреНрдп рджреБрд░реНрд▓рдн рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рдЕрднреА рднреА рд╣реЛрддрд╛ рд╣реИред

рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдкреБрдирд░рд╛рд╡рд░реНрддреА рд╣реИ, рдЕрд░реНрдерд╛рддреН, рдХреБрдЫ рд╕реНрддрд░ рдкрд░ рд╣рдореЗрдВ рдЫреЛрдЯреА рд▓рдВрдмрд╛рдИ рдХреА рдПрдХ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рдПрдХ рдкреНрд░рддреНрдпрдп рд╕рд░рдгреА рдЦреЛрдЬрдиреЗ рдХреА рд╕рдорд╛рди рд╕рдорд╕реНрдпрд╛ рдорд┐рд▓рддреА рд╣реИред рдорд┐рд╕рд┐рд╕рд┐рдкреА рдЙрджрд╛рд╣рд░рдг рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВ ред рддреЛ, рдкрд╣рд▓реА рдЪреАрдЬ рдЬреЛ рд╣рдо рдХрд░реЗрдВрдЧреЗ рд╡рд╣ рд╕рдВрдЦреНрдпрд╛ 1 рд╕реЗ N рддрдХ рдХреЗ рдЕрдВрдХреЛрдВ рдХреЗ рд╕рд╛рде рд╣рдорд╛рд░реЗ рдкреНрд░рддреАрдХреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рд╣реИ, рдЬреЛ рд╕рдВрдЦреНрдпрд╛рддреНрдордХ рд╡рд░реНрдгрдорд╛рд▓рд╛ рдкрд░ рдЬрд╛ рд░рд╣реА рд╣реИред рдЬреИрд╕рд╛ рдХрд┐ рд╣рдордиреЗ рдЙрд▓реНрд▓реЗрдЦ рдХрд┐рдпрд╛ рд╣реИ, рдпрд╣ O (N) рдмрд┐рдЯрд╡рд╛рдЗрдЬрд╝ рд╕реЙрд░реНрдЯрд┐рдВрдЧ рдореЗрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдЙрд╕рдХреЗ рдмрд╛рдж, рдореВрд▓ "рд╡рд╛рд╕реНрддрд╡рд┐рдХ" рдЕрдХреНрд╖рд░ рд╣рдореЗрдВ рд░реБрдЪрд┐ рдирд╣реАрдВ рджреЗрддреЗ рд╣реИрдВ, рд╣рдо рдХреЗрд╡рд▓ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреЗ рд╕рдВрдЦреНрдпрд╛рддреНрдордХ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВред рдЖрдк рднреВрд▓ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдпрд╣ рдПрдХ рдмрд╛рд░ рдПрдХ рд╕рдВрдЦреНрдпрд╛рддреНрдордХ рдЕрдиреБрдХреНрд░рдо рдирд╣реАрдВ рдерд╛ред

рдЕрдЧрд▓рд╛, рд╣рдо рдПрдХ рд╕реБрдкрд░рд▓реИрдкрд▓рд╛рдЗрди рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рдЬрд┐рд╕рдореЗрдВ рдкрд╛рда рдореЗрдВ рд╕рднреА рдЯреНрд░рд┐рдЧрд░реНрд╕ рд╣реЛрдВрдЧреЗ, рдФрд░ рдлрд┐рд░ рд╕реЗ рдЗрд╕ рдирдП рд╡рд░реНрдгрдорд╛рд▓рд╛ рдХреЗ рдЕрдХреНрд╖рд░реЛрдВ рдХреЛ рд▓реЗрдХреНрд╕рд┐рдХреЛрдЧреНрд░рд╛рдлрд╝рд┐рдХ рдХреНрд░рдо рдореЗрдВ рдХреНрд░рдорд╛рдВрдХрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред рдпрд╣ рд╕реНрдкрд╖реНрдЯ рд╣реИ рдХрд┐ рдпреЗ рддреНрд░рд┐рдХреЛрдг рдПрдХ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдореЗрдВ рд╡рд░реНрдгреЛрдВ рд╕реЗ рдЕрдзрд┐рдХ рдирд╣реАрдВ рд╣реИрдВ (рдпрджрд┐ рдорд┐рд▓рд╛рди рд╡рд╛рд▓реЗ рдХрдо рд╣реИрдВ)ред рдЪреВрдБрдХрд┐ рд╣рдо рдЗрд╕ рд╡рд░реНрдгрдорд╛рд▓рд╛ рдХреЗ рд╕рд╛рде рдкреНрд░рднрд╛рд╡реА рд░реВрдк рд╕реЗ рдХрд╛рдо рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рд╣рд░ рдмрд╛рд░ рд╕реБрдкрд░рдкреНрд▓рд┐рди рдореЗрдВ рдПрдХ рдЯреНрд░рд╛рдпрдЧреНрд░рд╛рдо рдХреА рдЦреЛрдЬ рдХрд░рдиреЗ рдФрд░ рдЕрдкрдиреА рд▓реЗрдХреНрд╕рд┐рдХреЛрдЧреНрд░рд╛рдлрд╝рд┐рдХ рд╕реНрдерд┐рддрд┐ рд╡рд╛рдкрд╕ рдХрд░рдиреЗ рдХрд╛ рд╡рд┐рдХрд▓реНрдк (рд▓реЗрдХреНрд╕рд┐рдХреЛрдЧреНрд░рд╛рдлрд╝рд┐рдХ рд╕реНрдерд┐рддрд┐ рдХреЛ рдХрднреА-рдХрднреА рд░реИрдВрдХ рднреА рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ) рд░реЛрд▓ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред рд╣рдореЗрдВ рддреБрд░рдВрдд рд╕реБрдкрд░рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛ рдирдВрдмрд░ рджреЗрдирд╛ рдЪрд╛рд╣рд┐рдП рддрд╛рдХрд┐ рдХрд┐рд╕ рддрд░рд╣ рдХреЗ рдЯреНрд░рд┐рдЧреНрд░рд╛рдо рдХрд╛ рд╕рд╡рд╛рд▓ рдмрд┐рд▓реНрдХреБрд▓ рди рдЙрдареЗред рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдореЗрдВ рдЗрдирдкреБрдЯ рд▓рд╛рдЗрди рдХреЗ рдкреНрд░рддреНрдпреЗрдХ рд╡рд░реНрдг рд╕реЗ рдореЗрд▓ рдЦрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП (рдХреНрдпрд╛ рдпрд╣ рд╕рдВрдЦреНрдпрд╛рддреНрдордХ рд╣реИ, рдпрд╣ рдордд рднреВрд▓реЛ?) рдЗрд╕ рд╕реНрдерд┐рддрд┐ рдореЗрдВ рдЯреНрд░рд┐рдЧрд░ рд╕рдВрдЦреНрдпрд╛ред рдпрд╣ рд╕рдВрд░рдХреНрд╖рд┐рдд рдХрд░рддреЗ рд╕рдордп рдореВрд▓ рд╕реНрдЯреНрд░рд┐рдВрдЧ рд╕реЗ рд╕рднреА рдЯреНрд░рд┐рдЧрд░реНрд╕ (рдбреБрдкреНрд▓рд┐рдХреЗрдЯ рдХреЗ рд╕рд╛рде) рдХреА рдмрд┐рдЯрд╡рд╛рдЗрдЬрд╝ рд╕реЙрд░реНрдЯрд┐рдВрдЧ рджреНрд╡рд╛рд░рд╛ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИрдЯреНрд░рд╛рдпрдЧреНрд░рд╛рдо рдХрд┐рд╕ рд╕реНрдерд┐рддрд┐ рд╕реЗ рдЖрдпрд╛ рд╣реИред рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ рдмрд╛рдж рдХреА рд╕рдВрдЦреНрдпрд╛ рдореБрд╢реНрдХрд┐рд▓ рдирд╣реАрдВ рд╣реИред

рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдП = "рдорд┐рд╕рд┐рд╕рд┐рдкреА" рд╕реЗ рдЖрдк рдЯреНрд░рд┐рдЧрд░реНрд╕ {рдорд┐рд╕, рдЖрдИрдПрд╕, рдПрд╕рд╕реАрдЖрдИ, ... рдкреАрдкреАрдЖрдИ, рдкреА $ $, рдЖрдИ $ рдбрдмреНрд▓реНрдпреВрдУ}, рдФрд░ рд▓реЗрдХреНрд╕рд┐рдХреЛрдЧреНрд░рд╛рдлрд┐рдХ рдСрд░реНрдбрд░ {рдЖрдИ $ рдбрдмреНрд▓реНрдпреВрдУрдкреА, рдЖрдИрдкреАрдПрд╕, рдЖрдЗрдПрд╕ ... рдПрд╕рд╕реАрдЖрдИ} рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рд╣рдордиреЗ рд╕реЗрдВрдЯрд┐рдирд▓ рджреНрд╡рд╛рд░рд╛ рдЖрд╡рд╢реНрдпрдХрддрд╛рдиреБрд╕рд╛рд░ рд▓рд╛рдЗрди рдХреЛ рдкреВрд░рдХ рдХрд┐рдпрд╛ рдФрд░ рдЙрдиреНрд╣реЗрдВ рдиреНрдпреВрдирддрдо рд╡рд░реНрдг рдорд╛рдирд╛ред

рдореВрд▓ рдкрдВрдХреНрддрд┐:рдореАрдЯрд░рдореИрдВрд░реЛрдВрд░реЛрдВрдореИрдВрд░реЛрдВрд░реЛрдВрдореИрдВрдкреАрдкреАрдореИрдВ
рд╕рдВрдЦреНрдпрд╛рддреНрдордХ рд╕реНрдЯреНрд░рд┐рдВрдЧ:21441441331
trigrams:рдЧрд▓рддissрд▓рдШреБ рдЙрджреНрдпреЛрдЧрд╕реАрд╕issрд▓рдШреБ рдЙрджреНрдпреЛрдЧрдШреВрдВрдЯIPPppi$ рдкреАрдореИрдВ $ $
рдЯреНрд░рд┐рдЧрд░ рдирдВрдмрд░:43983972651



рдЗрд╕ рдмрд┐рдВрджреБ рдкрд░, рдпрд╣ рдкрддрд╛ рдЪрд▓ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдкрдВрдХреНрддрд┐ рдХреЗ рд╕рднреА рддреНрд░рд┐рдХреЛрдг рдЕрд▓рдЧ-рдЕрд▓рдЧ рд╣реИрдВред рдЗрд╕реЗ рд╢реБрд░реБрдЖрддреА рдЯрд░реНрдорд┐рдирд▓ рд╕реНрдерд┐рддрд┐ рдХреЗ рд░реВрдк рдореЗрдВ рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдпрджрд┐ рдЯреНрд░рд┐рдЧрд░реНрд╕ рдЕрд▓рдЧ-рдЕрд▓рдЧ рд╣реИрдВ, рддреЛ рдЙрдирдХрд╛ рд▓реЗрдХреНрд╕рд┐рдХреЛрдЧреНрд░рд╛рдлрд┐рдХ рдСрд░реНрдбрд░ рдкреНрд░рддреНрдпрдпреЛрдВ рдХреЗ рд▓реЗрдХреНрд╕рд┐рдХреЛрдЧреНрд░рд╛рдлрд┐рдХ рдСрд░реНрдбрд░ рдХреЛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рддрд╛ рд╣реИ (рдЖрдк рдЗрд╕ рд╕реНрдерд┐рддрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдмрд╕ рдЬрдм рддрдХ рдЙрддреНрддрд░ рд╕реНрдкрд╖реНрдЯ рдирд╣реАрдВ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ рддрдм рддрдХ рд▓рд╛рдЗрди рдХрдо рдХрд░рддреЗ рд░рд╣реЗрдВ)ред рд╣рдо рддреАрди рддрд░реАрдХреЛрдВ рд╕реЗ рдЯреНрд░рд┐рдЧреНрд░рд╛рдо рдХреЗ рд░реВрдк рдореЗрдВ рдкреНрд░рд╛рд░рдВрднрд┐рдХ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХрд╛ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ: рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреЛ рдЯреНрд░рд┐рдЧреНрд░рд╛рдо рдореЗрдВ рддреЛрдбрд╝рдирд╛, рдкрд╣рд▓реЗ рдЪрд░рд┐рддреНрд░ рдХреЗ рдмрд┐рдирд╛ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдФрд░ рдкрд╣рд▓реЗ рджреЛ рд╡рд░реНрдгреЛрдВ рдХреЗ рдмрд┐рдирд╛ рд╕реНрдЯреНрд░рд┐рдВрдЧред рддрд╛рд░ 0 , T 1 рдФрд░ T 2 рдХреЗ рдЗрди рдЕрднреНрдпрд╛рд╡реЗрджрди рдХреЛ рдмреБрд▓рд╛рдУред рдЙрдирдореЗрдВ рд╕реЗ рдкреНрд░рддреНрдпреЗрдХ рдореВрд▓ рд╕реЗ рддреАрди рдЧреБрдирд╛ рдЫреЛрдЯрд╛ рд╣реИред рдпрджрд┐ рд╣рдо рд╕реНрдерд┐рддрд┐ рдХреЛ рд╢реВрдиреНрдп рд╕реЗ рдЧрд┐рдирддреЗ рд╣реИрдВ, рддреЛ рдЗрди рдЕрднреНрдпрд╛рд╡реЗрджрди рдХреЛ I i 3 = 0, i mod 3 = 1 рдФрд░ i mod 3 = 2 рдХреЗ рдкрджреЛрдВ рдореЗрдВ рдкреНрд░рддреНрдпрдпреЛрдВ рдХреЗ рд╕рдореВрд╣ рдХреЗ рдЕрдиреБрд░реВрдк рдХрд╣рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

T 0 :mississippi$
4875
T 1 :ississippi$$
3321
T 2 :ssissippi
996



рдЗрд╕рдХреЗ рдмрд╛рдж, рдПрдХ рдлреЗрдВрдЯ рдХрд╛рдиреЛрдВ рдХреЗ рд╕рд╛рде рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдЬрд┐рд╕рдХрд╛ рдЕрд░реНрде рдмрд╛рдж рдореЗрдВ рд╕реНрдкрд╖реНрдЯ рд╣реЛрдЧрд╛: рд╣рдо рдЗрди рддреАрди рд▓рд╛рдЗрдиреЛрдВ рдореЗрдВ рд╕реЗ рджреЛ рд▓реЗрддреЗ рд╣реИрдВ, рд╕рдорд╡рд░реНрддреА рдХреЗ рд▓рд┐рдП, рдЯреА 1 рдФрд░ рдЯреА 2 , рдЯреНрд░рд┐рдЧрд░реНрд╕ рдХреЗ рд░реВрдк рдореЗрдВ рдкреНрд░рд╕реНрддреБрдд рдХрд┐рдП рдЧрдП, рд╕рдорд╡рд░реНрддреА рдФрд░ рдПрдХ рдкреБрдирд░рд╛рд╡рд░реНрддреА рдХреЙрд▓ рдореЗрдВ рдПрдХ рд╣реА рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдХреЛ рдкрд╛рд╕ рдХрд░рддреЗ рд╣реИрдВред рдЬрд╛рд╣рд┐рд░ рд╣реИ, рд╕рдВрдЪрд░рд┐рдд рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреА рд▓рдВрдмрд╛рдИ рдореВрд▓ рд╕реЗ рдПрдХ рддрд┐рд╣рд╛рдИ рдХрдо рд╣реИред рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рд╕реЗ рдмрд╛рд╣рд░ рдирд┐рдХрд▓рдиреЗ рдкрд░, рд╣рдо рдПрдХ рдкреНрд░рддреНрдпрдп рд╕рд░рдгреА (рдпрд╛, рд╕рдордХрдХреНрд╖, рд░реИрдВрдХ рдХреА рдПрдХ рд╕рд░рдгреА) рдХреА рдЕрдкреЗрдХреНрд╖рд╛ рдХрд░рддреЗ рд╣реИрдВред рдПрдХ рд╕рдВрдЦреНрдпрд╛ рд░реЗрдЦрд╛ рдкрд░ рддреНрд░рд┐рдХреЛрдг рд╕реЗ рд╡рд╛рдкрд╕ рдЬрд╛рдиреЗ рдкрд░, рд╣рдореЗрдВ рд╕рдореВрд╣ 1 рдФрд░ 2 рдХреЗ рдкреНрд░рддреНрдпрдпреЛрдВ рдХреЗ рдмреАрдЪ рдХреЗ рд╢рд╛рдмреНрджрд┐рдХ рдЖрджреЗрд╢ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирдХрд╛рд░реА рдорд┐рд▓рддреА рд╣реИред

рд╕рдореВрд╣ 0 рдХреЗ рдкреНрд░рддреНрдпрдп рдХреЛ рдПрдХ рд╡рд░реНрдг рдФрд░ рд╕рдореВрд╣ 1 рдХреЗ рдкреНрд░рддреНрдпрдп рдпрд╛ рджреЛ рд╡рд░реНрдгреЛрдВ рдХреЗ рд╕рдореВрд╣ рдХреЗ рд░реВрдк рдореЗрдВ рдФрд░ рд╕рдореВрд╣ 2 рдХреЗ рдкреНрд░рддреНрдпрдп рдХреЗ рд░реВрдк рдореЗрдВ рджрд░реНрд╢рд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ: A [ 3k ..] = (A [3k], A [3k + 1 ..]) = (A [3k], A [3k + 1], A[3k + 2 ..])ред рд╕рдорд╛рди рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐рдпреЛрдВ рдХреЛ рдкреНрд░рддреНрдпрдпреЛрдВ рдХреЗ рдЕрдиреНрдп рд╕рдореВрд╣реЛрдВ рдХреЛ рдкрдбрд╝реЛрд╕реА рд▓реЛрдЧреЛрдВ рдореЗрдВ рдЕрдиреБрд╡рд╛рдж рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд▓рд┐рдЦрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рд╣рдо рдПрдХ рдкреНрд░рддреАрдХ рдХреЗ рдЬреЛрдбрд╝реЗ рдХреЗ рд░реВрдк рдореЗрдВ рдЯрд╛рдЗрдк 0 рдкреНрд░рддреНрдпрдп рдХрд╛ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдПрдХ рдкреНрд░рдХрд╛рд░ 1 рдкреНрд░рддреНрдпрдп (рдЕрдзрд┐рдХ рд╕рдЯреАрдХ, рдЯрд╛рдЗрдк 1 рдкреНрд░рддреНрдпрдп рдХреА рд░реИрдВрдХ, рдкреНрд░рддреНрдпрдп рд╣рдорд╛рд░реЗ рд▓рд┐рдП рджрд┐рд▓рдЪрд╕реНрдк рдирд╣реАрдВ рд╣реИ), рдЬрд┐рд╕рдХреЗ рдмрд╛рдж рд╣рдо рдЙрдиреНрд╣реЗрдВ рдмрд┐рдЯрд╡рд╛рдЗрдЬрд╝ рд╕реЙрд░реНрдЯ рдХрд░рдХреЗ рд╕реЙрд░реНрдЯ рдХрд░рддреЗ рд╣реИрдВред

рдЗрд╕ рд╕реНрддрд░ рдкрд░, рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдЯрд╛рдЗрдк 1 рдФрд░ 2 рдХреЗ рдкрд░рд╕реНрдкрд░ рд╕реЙрд░реНрдЯ рдХрд┐рдП рдЧрдП рдкреНрд░рддреНрдпрдпреЛрдВ рдХреЗ рд░реВрдк рдореЗрдВ рдПрдХ рдкреБрдирд░рд╛рд╡рд░реНрддреА рдлрд╝рдВрдХреНрд╢рди рдХреЙрд▓ рдХрд╛ рдкрд░рд┐рдгрд╛рдо рд╣реИ, рдФрд░ рдЯрд╛рдЗрдк 0. рдХреЗ рдЫрдВрдЯрдиреА рдкреНрд░рддреНрдпрдп рд╣реИрдВред рд╣рдореЗрдВ рд╕реЙрд░реНрдЯ рдХрд┐рдП рдЧрдП рд╕рд░рдгрд┐рдпреЛрдВ рдХреЗ рд╕рд╛рдорд╛рдиреНрдп рдорд░реНрдЬ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЙрдиреНрд╣реЗрдВ рдорд░реНрдЬ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рд╣рдореЗрдВ рдЯрд╛рдЗрдк 0 рдкреНрд░рддреНрдпрдпреЛрдВ рдХреЗ рд╕рд╛рде рдкреНрд░рднрд╛рд╡реА рд░реВрдк рд╕реЗ рддреБрд▓рдирд╛ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред 1 рдФрд░ 2. рдЯрд╛рдЗрдк 1 рдкреНрд░рддреНрдпрдп рдХреЗ рдкреНрд░рдХрд╛рд░ 1 рдХреЗ рд╕рд╛рде рддреБрд▓рдирд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдЯрд╛рдЗрдк 0 рдкреНрд░рддреНрдпрдп рдХреЛ рдЯрд╛рдЗрдк 1 рдореЗрдВ рдмрджрд▓рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдФрд░ рдЯрд╛рдЗрдк 1 рдХреЗ рд▓рд┐рдП рдЯрд╛рдЗрдк 2: (рдП [3 рдПрд▓], рдП [3 рдПрд▓ + 1 ..] рд╡реАрдПрд╕ (рдП) [рей рдореА + рез], рдП[рей рдореА + реи] ..)ред рдЗрди рджреЛ рдЬреЛрдбрд╝реЛрдВ рдХреА рддреБрд▓рдирд╛ рдХрд░рдирд╛ рд╕рд░рд▓ рд╣реИ: рдпрд╛ рддреЛ рдкрд╣рд▓рд╛ рдЪрд░рд┐рддреНрд░ рдХреНрд░рдо рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рддрд╛ рд╣реИ, рдпрд╛ рдпрджрд┐ рдпрд╣ рд╕рдорд╛рди рд╣реИ, рддреЛ рдпрд╣ рдЖрджреЗрд╢ рд╕рдореВрд╣ 1 рдФрд░ 2 рдХреЗ рдкреНрд░рддреНрдпрдпреЛрдВ рдХреЗ рдХреНрд░рдо рдХреЛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рддрд╛ рд╣реИ, рдЬрд┐рд╕реЗ рд╣рдо рдЗрд╕ рдПрд▓реНрдЧреЛрд░рд┐рдердо рдХреЗ рдкреБрдирд░рд╛рд╡рд░реНрддреА рдХреЙрд▓ рдХреЗ рдкрд░рд┐рдгрд╛рдореЛрдВ рд╕реЗ рдЬрд╛рдирддреЗ рд╣реИрдВред рдкреНрд░рдХрд╛рд░ 0 рдФрд░ 2 рдХреЗ рдкреНрд░рддреНрдпрдп рдХреА рддреБрд▓рдирд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╢реНрд░реГрдВрдЦрд▓рд╛ рдереЛрдбрд╝реА рдмрдбрд╝реА рд╣реИ, рд▓реЗрдХрд┐рди рд╕рд╛рд░ рд╕рдорд╛рди рд╣реИ: (рдП [3 рдПрд▓], рдП [3 рдПрд▓ + 1], рдП [3 рдПрд▓ + 2 ..]) рд╡реАрдПрд╕ (рдП [3 рдПрдо + 2], рдП [3] (m + 1)], A [3 (m + 1) +1 ..])ред

рдкрд╣рд▓реА рдирдЬрд╝рд░ рдореЗрдВ, рдпрд╣ рд╕реНрдкрд╖реНрдЯ рдирд╣реАрдВ рд╣реИ рдХрд┐ рдпрд╣ рд╕рдм рд╣рдореЗрдВ рд░реИрдЦрд┐рдХ рдЬрдЯрд┐рд▓рддрд╛ рдХреНрдпреЛрдВ рджреЗрдиреА рдЪрд╛рд╣рд┐рдПред рдкрд╣рд▓реЗ, рд╣рдо рдкреБрдирд░рд╛рд╡рд░реНрддреА рдХреЙрд▓ рдХреЛ рдЫреЛрдбрд╝рдХрд░ рд╕рднреА рдЪреАрдЬреЛрдВ рд╕реЗ рдирд┐рдкрдЯреЗрдВрдЧреЗред рд╕реБрдкрд░рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреА рдмрд┐рдЯрд╡рд╛рдЗрдЬрд╝ рдЫрдБрдЯрд╛рдИ, рдкреНрд░рддреНрдпрдп рдХреЛ рдЪрд┐рд╣реНрдирд┐рдд рдХрд░рдирд╛ рд╕рднреА O (N) рд╣реИрдВ, рд╕рдореВрд╣ 0 рдХреЗ рдкреНрд░рддреНрдпрдпреЛрдВ рдХреА рдмрд┐рдЯрд╡рд╛рдЗрдЬрд╝ рд╕реЙрд░реНрдЯрд┐рдВрдЧ рдФрд░ рд╕реЙрд░реНрдЯ рдХрд┐рдП рдЧрдП рд╕рд░рдгрд┐рдпреЛрдВ рдХрд╛ рднреА O (N) рд╣реИред рдЕрдм рдПрдХ рдкреБрдирд░рд╛рд╡рд░реНрддреА рдХреЙрд▓ - рд╣рдо рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдХреЛ рдореВрд▓ рд╕реНрдЯреНрд░рд┐рдВрдЧ рд▓рдВрдмрд╛рдИ рдХреЗ 2/3 рдХрд╣рддреЗ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдХреА рдЬрдЯрд┐рд▓рддрд╛ рдЯреА (рдПрди) = рдЯреА (2 рдПрди / 3) + рдУ (рдПрди) рд╣реИред рдпрджрд┐ рд╣рдо рдЗрд╕ рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рдХреЛ рд╕реНрд╡рдпрдВ рдореЗрдВ рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдХреЗ рдЪрд┐рддреНрд░рд┐рдд рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рд╣рдореЗрдВ 2/3 рдХреЗ рдЧреБрдгрд╛рдВрдХ рдХреЗ рд╕рд╛рде рдЬреНрдпрд╛рдорд┐рддреАрдп рдкреНрд░рдЧрддрд┐ рдХрд╛ рдпреЛрдЧ рдорд┐рд▓рддрд╛ рд╣реИ, рдФрд░ рдЗрд╕рд▓рд┐рдП O (N) рдХреЛ рд╕реАрдорд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдкрд░рд┐рдгрд╛рдореА рдЬрдЯрд┐рд▓рддрд╛ рдЗрд╕ рдкреНрд░рдХрд╛рд░ рд╣реЗ (рдПрди) рд╣реИред


рдирд┐рд╖реНрдХрд░реНрд╖



рдпрд╣ рдкреНрд░рддреНрдпрдп рд╕рд░рдгреА рдХреИрд╕реЗ рд▓рд╛рдЧреВ рдХрд░реЗрдВ рдФрд░ рдЗрд╕реЗ рдХреИрд╕реЗ рдмрдирд╛рдПрдВред рдПрд▓реНрдЧреЛрд░рд┐рджрдо рдХрд╛рдлреА рд╕реНрд╡реИрдЪреНрдЫрд┐рдХ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдХреНрдпрд╛ рдХрд░рдирд╛ рд╣реИ рдпрд╣ рдПрдХ рдЙрдЪреНрдЪ рд╕реНрддрд░реАрдп рдХрд╛рд░реНрдп рд╣реИред рдореИрдВрдиреЗ рдпрд╣ рд╕рдм рдХрд╛рдлреА рд╕рд╛рдорд╛рдиреНрдп рд╢рдмреНрджреЛрдВ рдореЗрдВ рд╡рд░реНрдгрд┐рдд рдХрд┐рдпрд╛ рд╣реИ рдФрд░ рдПрдХ рд╕реНрдкрд╖реНрдЯ рдХрд╛рд░рдг рдХреЗ рд▓рд┐рдП рдХреЛрдИ рдХреЛрдб рдкреНрд░рджрд╛рди рдирд╣реАрдВ рдХрд┐рдпрд╛ рд╣реИ - рдлрд┐рд░ рдмрд╣реБрдд рд╕рд╛рд░реЗ рд╢рдмреНрдж рдФрд░ рдХреЛрдб рд╣реЛрдВрдЧреЗред рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ, рдПрд▓реНрдЧреЛрд░рд┐рджрдо рддреЗрдЬреА рд╕реЗ рдФрд░ рдереЛрдбрд╝рд╛ рдзреАрдорд╛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреА рдЬрдЯрд┐рд▓рддрд╛ рдореЗрдВ рдХрд╛рдлреА рднрд┐рдиреНрди рд╣реЛрддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдХрдИ рдмрд╛рд░ рд╕реЛрдЪрдиреЗ рдХрд╛ рдХрд╛рд░рдг рд╣реИ рдХрд┐ рдХреНрдпрд╛ рдЖрдкрдХреЛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдРрд╕рд╛ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, O (N) рдХреЗ рд▓рд┐рдП, рдФрд░ O (NlogN) рдХреЗ рд▓рд┐рдП рдирд╣реАрдВред

рдореИрдВ рдЗрд╕ рд╕рд╡рд╛рд▓ рдХрд╛ рднреА рдкреВрд░реНрд╡рд╛рднрд╛рд╕ рдХрд░рддрд╛ рд╣реВрдВ рдХрд┐ "рдореИрдВ рдХрд╣рд╛рдВ рддрдХ тАЛтАЛрд▓рд╛рдЧреВ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рджреЗрдЦ рд╕рдХрддрд╛ рд╣реВрдВ", "рдЬрд╣рд╛рдВ рдЕрдзрд┐рдХ рдкрдврд╝рдирд╛ рд╣реИ", рдЖрджрд┐ред рдореИрдВ рд╡реНрдпрдХреНрддрд┐рдЧрдд рд░реВрдк рд╕реЗ "рдмрд╕ рдЕрдкрдиреЗ рддреБрд▓рдирд┐рддреНрд░ рдЬреЛрдбрд╝рдиреЗ" рдХреА рд╢реИрд▓реА рдореЗрдВ рдХрд┐рд╕реА рднреА рддреИрдпрд╛рд░ рдХрд┐рдП рдЧрдП рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЛ рджреЗрдЦрд╛ рдирд╣реАрдВ рд╣реИ, рд╣рд╛рд▓рд╛рдВрдХрд┐ рд╡рд┐рдХрд┐рдкреАрдбрд┐рдпрд╛ рдкреГрд╖реНрда рдореМрдЬреВрдж рд╣реЛрдиреЗ рдХрд╛ рджрд╛рд╡рд╛ рдХрд░рддрд╛ рд╣реИред рдЗрдзрд░ рдФрд░ рдЙрдзрд░рд╕реНрдкрд╖реНрдЯреАрдХрд░рдг рдФрд░ рдХреБрдЫ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рд╣реИрдВред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдХрд░рдХреИрдирди рдФрд░ рд╕реИрдВрдбрд░реНрд╕ рдХреЗ рдореВрд▓ рд▓реЗрдЦ рдореЗрдВ рдПрдХ рд╕рд░рдгреА рдирд┐рд░реНрдорд╛рдг рдХреЛрдб рднреА рд╣реИред рдЖрдк рдордирдмрд░ рдФрд░ рдорд╛рдпрд░реНрд╕ рдХреЗ рд▓реЗрдЦ рдореЗрдВ рдПрдирдПрд▓рдПрдирдЬреАрдПрди рдмрд┐рд▓реНрдбрд┐рдВрдЧ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдкрдврд╝ рд╕рдХрддреЗ рд╣реИрдВ: рдЙрдбреА рдореИрдирд░, рдЬреАрди рдорд╛рдпрд░реНрд╕ - "рдкреНрд░рддреНрдпрдп рд╕рд░рдгрд┐рдпрд╛рдБ: рдСрди-рд▓рд╛рдЗрди рд╕реНрдЯреНрд░рд┐рдВрдЧ рдЦреЛрдЬреЛрдВ рдХреЗ рд▓рд┐рдП рдПрдХ рдирдИ рд╡рд┐рдзрд┐"ред

Source: https://habr.com/ru/post/In115346/


All Articles