
рдореБрдЭреЗ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╕рдорд╕реНрдпрд╛ рд╣реБрдИред рдбреЗрдЯрд╛ рд╕реНрдЯреЛрд░реЗрдЬ рдХрдВрдЯреЗрдирд░ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реИ рдЬреЛ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ:
- рдирдпрд╛ рдЖрдЗрдЯрдо рдбрд╛рд▓реЗрдВ
- рд╕реАрд░рд┐рдпрд▓ рдирдВрдмрд░ рджреНрд╡рд╛рд░рд╛ рдЖрдЗрдЯрдо рд╣рдЯрд╛рдПрдВ
- рд╕реАрд░рд┐рдпрд▓ рдирдВрдмрд░ рджреНрд╡рд╛рд░рд╛ рдЖрдЗрдЯрдо рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ
- рдбреЗрдЯрд╛ рдХреЛ рд╕реЙрд░реНрдЯ рдХрд┐рдП рдЧрдП рд░реВрдк рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ
рдбреЗрдЯрд╛ рдХреЛ рд▓рдЧрд╛рддрд╛рд░ рдЬреЛрдбрд╝рд╛ рдФрд░ рд╣рдЯрд╛ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рд╕рдВрд░рдЪрдирд╛ рдХреЛ рддреЗрдЬ рдЧрддрд┐ рдкреНрд░рджрд╛рди рдХрд░рдиреА рдЪрд╛рд╣рд┐рдПред рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ рдореИрдВрдиреЗ рд╕реНрдЯреИрдб рд╕реЗ рдорд╛рдирдХ рдХрдВрдЯреЗрдирд░реЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдРрд╕реА рдЪреАрдЬ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХреАред рдпрд╣ рд░рд╛рд╕реНрддрд╛ рдЕрд╕рдлрд▓ рд░рд╣рд╛ рдФрд░ рдпрд╣ рд╕рдордЭ рдЖрдИ рдХрд┐ рдЖрдкрдХреЛ рдЦреБрдж рдХреБрдЫ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреА рдЬрд░реВрд░рдд рд╣реИред рдХреЗрд╡рд▓ рдПрдХ рдЪреАрдЬ рдЬреЛ рджрд┐рдорд╛рдЧ рдореЗрдВ рдЖрдИ рд╡рд╣ рдереА рдмрд╛рдЗрдирд░реА рд╕рд░реНрдЪ рдЯреНрд░реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ред рдЪреВрдВрдХрд┐ рдпрд╣ рдХреНрд░рдордмрджреНрдз рд░реВрдк рдореЗрдВ рдбреЗрдЯрд╛ рдХреЗ рддреНрд╡рд░рд┐рдд рд╕рдореНрдорд┐рд▓рди, рд╡рд┐рд▓реЛрдкрди рдФрд░ рднрдВрдбрд╛рд░рдг рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреЛ рдкреВрд░рд╛ рдХрд░рддрд╛ рд╣реИред рдпрд╣ рдХреЗрд╡рд▓ рдпрд╣ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рд░рд╣рддрд╛ рд╣реИ рдХрд┐ рд╕рднреА рддрддреНрд╡реЛрдВ рдХреЛ рдХреИрд╕реЗ рдЕрдиреБрдХреНрд░рдорд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдП рдФрд░ рдкреЗрдбрд╝реЛрдВ рдХреЗ рдмрджрд▓рдиреЗ рдкрд░ рд╕реВрдЪрдХрд╛рдВрдХреЛрдВ рдХреЛ рдкреБрдирд░реНрдЧрдгрдирд╛ рдХрд┐рдпрд╛ рдЬрд╛рдПред
struct node_s { data_t data; uint64_t weight;
рд▓реЗрдЦ рдореЗрдВ рдХреЛрдб рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдЕрдзрд┐рдХ рдЪрд┐рддреНрд░ рдФрд░ рд╕рд┐рджреНрдзрд╛рдВрдд рд╣реЛрдВрдЧреЗред рдиреАрдЪреЗ рджрд┐рдП рдЧрдП рд▓рд┐рдВрдХ рдкрд░ рдХреЛрдб рдХреЛ рджреЗрдЦрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
рднрд╛рд░
рдЗрд╕рдХреЗ рд▓рд┐рдП, рдкреЗрдбрд╝ рдиреЗ рдПрдХ рдорд╛рдореВрд▓реА рд╕рдВрд╢реЛрдзрди рдХрд┐рдпрд╛, рдиреЛрдб рдХреЗ рд╡рдЬрди рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЕрддрд┐рд░рд┐рдХреНрдд рдЬрд╛рдирдХрд╛рд░реА рдЬреЛрдбрд╝реА рдЧрдИред рдПрдХ рдиреЛрдб рдХрд╛ рд╡рдЬрди рдЗрд╕ рдиреЛрдб + 1 (рдПрдХ рддрддреНрд╡ рдХрд╛ рд╡рдЬрди) рдХреЗ рд╡рдВрд╢рдЬреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рд╣реИ ред
рдиреЛрдб рдХрд╛ рд╡рдЬрди рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХрд╛ рдХрд╛рд░реНрдп:
uint64_t bntree::get_child_weight(node_t *node) { if (node) { return node->weight; } return 0; }
рд╢реАрдЯ, рдХреНрд░рдорд╢рдГ, 0 рдХрд╛ рд╡рдЬрди рд╣реИред
рдЕрдЧрд▓рд╛, рд╣рдо рдРрд╕реЗ рдкреЗрдбрд╝ рдХреЗ рдЙрджрд╛рд╣рд░рдг рдХрд╛ рдПрдХ рджреГрд╢реНрдп рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдХрд░рддреЗ рд╣реИрдВред рдиреЛрдб рдХреБрдВрдЬреА рдХреЛ рдХрд╛рд▓реЗ рд░рдВрдЧ рдореЗрдВ рджрд┐рдЦрд╛рдпрд╛ рдЬрд╛рдПрдЧрд╛ (рдорд╛рди рдирд╣реАрдВ рджрд┐рдЦрд╛рдпрд╛ рдЬрд╛рдПрдЧрд╛, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдЖрд╡рд╢реНрдпрдХ рдирд╣реАрдВ рд╣реИ), рд▓рд╛рд▓ рд░рдВрдЧ рдореЗрдВ - рдиреЛрдб рдХрд╛ рд╡рдЬрди, рд╣рд░реЗ рд░рдВрдЧ рдореЗрдВ - рдиреЛрдб рдХрд╛ рд╕реВрдЪрдХрд╛рдВрдХред
рдЬрдм рдкреЗрдбрд╝ рдЦрд╛рд▓реА рд╣реЛрддрд╛ рд╣реИ, рддреЛ рдЙрд╕рдХрд╛ рд╡рдЬрди 0. рд╣реЛрддрд╛ рд╣реИред рдореВрд▓ рддрддреНрд╡ рдХреЛ рдЗрд╕рдореЗрдВ рдЬреЛрдбрд╝реЗрдВ:
рдкреЗрдбрд╝ рдХрд╛ рд╡рдЬрди 1 рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ, рдЬрдбрд╝ рддрддреНрд╡ рдХрд╛ рд╡рдЬрди 1. рдЬрдбрд╝ рддрддреНрд╡ рдХрд╛ рд╡рдЬрди рдкреЗрдбрд╝ рдХрд╛ рд╡рдЬрди рд╣реЛрддрд╛ рд╣реИред
рдХреБрдЫ рдФрд░ рддрддреНрд╡ рдЬреЛрдбрд╝реЗрдВ:




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

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

рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдХреБрдВрдЬреА 8 (рдореВрд▓ рдХрд╛ рд╕рд╣реА рдмрдЪреНрдЪрд╛) рдХреЗ рд╕рд╛рде рдПрдХ рддрддреНрд╡ рдХреЗ рд╕реВрдЪрдХрд╛рдВрдХ рдХреА рдЧрдгрдирд╛ рдХреИрд╕реЗ рдХрд░реЗрдВред рдпрд╣ "рд░реВрдЯ рдЗрдВрдбреЗрдХреНрд╕" + "рдХреБрдВрдЬреА 8" + "1" == 3 + 2 + 1 == 6 рдХреЗ рд╕рд╛рде рдиреЛрдб рдХреЗ рдмрд╛рдПрдВ рд╕рдмрдЯреНрд░реА рдХрд╛ рд╡рдЬрди рд╣реИ
рдХреБрдВрдЬреА 6 рдХреЗ рд╕рд╛рде рдЖрдЗрдЯрдо рдХрд╛ рд╕реВрдЪрдХрд╛рдВрдХ "рд░реВрдЯ рдЗрдВрдбреЗрдХреНрд╕" + 1 == 3 + 1 == 4 рд╣реИ
рддрджрдиреБрд╕рд╛рд░, рдХрд┐рд╕реА рддрддреНрд╡ рдХреЛ рдЗрдВрдбреЗрдХреНрд╕ рджреНрд╡рд╛рд░рд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдФрд░ рдирд┐рдХрд╛рд▓рдиреЗ рдХреЗ рд▓рд┐рдП O (рд▓реЙрдЧ рдПрди) рд╕рдордп рд▓рдЧреЗрдЧрд╛, рдХреНрдпреЛрдВрдХрд┐ рддрддреНрд╡ рдХреЛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╣рдореЗрдВ рдкрд╣рд▓реЗ рдЗрд╕реЗ рдЦреЛрдЬрдиреЗ рдХреА рдЬрд░реВрд░рдд рд╣реИ (рдореВрд▓ рд╕реЗ рдЗрд╕ рддрддреНрд╡ рддрдХ рдиреАрдЪреЗ рдЬрд╛рдПрдВ)ред
рдЧрд╣рд░рд╛рдИ
рд╡рдЬрди рдХреЗ рдЖрдзрд╛рд░ рдкрд░, рдЖрдк рдкреЗрдбрд╝ рдХреА рдЧрд╣рд░рд╛рдИ рдХреА рдЧрдгрдирд╛ рднреА рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рд╕рдВрддреБрд▓рди рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рд╣реИред
рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╡рд░реНрддрдорд╛рди рдиреЛрдб рдХрд╛ рд╡рдЬрди рдкрд╣рд▓реЗ рдирдВрдмрд░ 2 рдореЗрдВ рдЧреЛрд▓ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП рдЬреЛ рдХрд┐ рджрд┐рдП рдЧрдП рд╡рдЬрди рдХреЗ рдмрд░рд╛рдмрд░ рдпрд╛ рдЙрд╕рд╕реЗ рдЕрдзрд┐рдХ рд╣реЛ рдФрд░ рдЙрд╕рд╕реЗ рджреНрд╡рд┐рдЖрдзрд╛рд░реА рд▓рдШреБрдЧрдгрдХ рд▓реЗрдВред рдЗрд╕ рдкреНрд░рдХрд╛рд░, рд╣рдореЗрдВ рдкреЗрдбрд╝ рдХреА рдЧрд╣рд░рд╛рдИ рдорд┐рд▓рддреА рд╣реИ, рдмрд╢рд░реНрддреЗ рдХрд┐ рдпрд╣ рд╕рдВрддреБрд▓рд┐рдд рд╣реЛред рдирдпрд╛ рддрддреНрд╡ рдбрд╛рд▓рдиреЗ рдХреЗ рдмрд╛рдж рдкреЗрдбрд╝ рд╕рдВрддреБрд▓рд┐рдд рд╣реЛрддрд╛ рд╣реИред рдкреЗрдбрд╝реЛрдВ рдХреЛ рдХреИрд╕реЗ рд╕рдВрддреБрд▓рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдП, рдЗрд╕ рд╕рд┐рджреНрдзрд╛рдВрдд рдХрд╛ рдиреЗрддреГрддреНрд╡ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред рд╕реЛрд░реНрд╕ рдХреЛрдб рдПрдХ рдмреИрд▓реЗрдВрд╕рд┐рдВрдЧ рдлрдВрдХреНрд╢рди рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИред
рд╡рдЬрди рдХреЛ рдЧрд╣рд░рд╛рдИ рддрдХ рд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХреЛрдбред
uint64_t bntree::cpl2(uint64_t x) { x = x - 1; x = x | (x >> 1); x = x | (x >> 2); x = x | (x >> 4); x = x | (x >> 8); x = x | (x >> 16); x = x | (x >> 32); return x + 1; } long bntree::ilog2(long d) { int result; std::frexp(d, &result); return result - 1; } uint64_t bntree::weight_to_depth(node_t *p) { if (p == NULL) { return 0; } if (p->weight == 1) { return 1; } else if (p->weight == 2) { return 2; } return this->ilog2(this->cpl2(p->weight)); }
рдкрд░рд┐рдгрд╛рдо
- рдПрдХ рдирдП рддрддреНрд╡ рдХрд╛ рд╕рдореНрдорд┐рд▓рди O (рд▓реЙрдЧ рдПрди) рдореЗрдВ рд╣реЛрддрд╛ рд╣реИ
- рдЕрдиреБрдХреНрд░рдо рд╕рдВрдЦреНрдпрд╛ рджреНрд╡рд╛рд░рд╛ рддрддреНрд╡ рд╡рд┐рд▓реЛрдкрди O (рд▓реЙрдЧ рдПрди) рдореЗрдВ рд╣реЛрддрд╛ рд╣реИ
- рдПрдХ рд╕реАрд░рд┐рдпрд▓ рдирдВрдмрд░ рджреНрд╡рд╛рд░рд╛ рдПрдХ рддрддреНрд╡ рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ O (рд▓реЙрдЧ рдПрди) рдореЗрдВ рд╣реЛрддрд╛ рд╣реИ
O (рд▓реЙрдЧ рдПрди) рдХреА рдЧрддрд┐ рдХреЗ рд╕рд╛рде рд╣рдо рдЗрд╕ рддрдереНрдп рдХреЗ рд▓рд┐рдП рднреБрдЧрддрд╛рди рдХрд░рддреЗ рд╣реИрдВ рдХрд┐ рд╕рднреА рдбреЗрдЯрд╛ рд╕реЙрд░реНрдЯ рдХрд┐рдП рдЧрдП рд░реВрдк рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рд╣реИрдВред
рдРрд╕реА рд╕рдВрд░рдЪрдирд╛ рдХрд╣рд╛рдБ рдХрд╛рдо рдЖ рд╕рдХрддреА рд╣реИ, рдореБрдЭреЗ рдирд╣реАрдВ рдкрддрд╛ред рдмрд╕ рдПрдХ рдХрд╛рд░реНрдп рдПрдХ рдмрд╛рд░ рдлрд┐рд░ рд╕реЗ рд╕рдордЭрдирд╛ рд╣реИ рдХрд┐ рдкреЗрдбрд╝ рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВред рдЖрдкрдХрд╛ рдзреНрдпрд╛рди рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рджред
рд╕рдВрджрд░реНрдн
рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдореЗрдВ рдХрд╛рд░реНрдп рдХреА рдЧрддрд┐ рдХреЛ рд╕рддреНрдпрд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░реАрдХреНрд╖рдг рдбреЗрдЯрд╛ рд╣реИред рдкреЗрдбрд╝ 1,000,000 рддрддреНрд╡реЛрдВ рд╕реЗ рднрд░рд╛ рд╣реЛрддрд╛ рд╣реИред рдФрд░ 1,000,000 рдЧреБрдирд╛ рддрддреНрд╡реЛрдВ рдХрд╛ рдЕрдиреБрдХреНрд░рдорд┐рдХ рд╡рд┐рд▓реЛрдкрди, рд╕рдореНрдорд┐рд▓рди рдФрд░ рдкреНрд░рд╛рдкреНрддрд┐ рд╣реИред рдпрд╣ 3,000,000 рдСрдкрд░реЗрд╢рди рд╣реИред рдкрд░рд┐рдгрд╛рдо рдХрд╛рдлреА рдЕрдЪреНрдЫрд╛ рдерд╛ ~ 8 рд╕реЗрдХрдВрдбред