рдкрд╛рда рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддреЗ рд╕рдордп, рдЕрдХреНрд╕рд░ рд╣рд╛рдЗрдлрд╝рди рдХреЛ рд╕рд╣реА рдврдВрдЧ рд╕реЗ рд╡реНрдпрд╡рд╕реНрдерд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред рдкрд╣рд▓реА рдирдЬрд╝рд░ рдореЗрдВ рдХрд╛рд░реНрдп рдЗрддрдирд╛ рд╕реНрдкрд╖реНрдЯ рдирд╣реАрдВ рд╣реИ, рдЖрдкрдХреЛ рдпрд╣ рддрдп рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд░рддреНрдпреЗрдХ рднрд╛рд╖рд╛ рдХреА рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХреЛ рдзреНрдпрд╛рди рдореЗрдВ рд░рдЦрдирд╛ рд╣реЛрдЧрд╛ рдХрд┐ рдХрд┐рд╕ рд╕реНрдерд╛рди рдкрд░ рд╢рдмреНрдж рдХреЛ рддреЛрдбрд╝рдирд╛ рд╣реИред рдРрд╕реА рдЖрд╡рд╢реНрдпрдХрддрд╛рдУрдВ рдХреЛ рдХреИрд╕реЗ рдФрдкрдЪрд╛рд░рд┐рдХ рд░реВрдк рджрд┐рдпрд╛ рдЬрд╛рдП, рдФрд░ рдлрд┐рд░ рдЙрдиреНрд╣реЗрдВ рдПрд▓реНрдЧреЛрд░рд┐рдердо рдореЗрдВ рдХреИрд╕реЗ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЬрд╛рдП? рдЗрд╕ рджрд┐рди рдХреЗ рд╕рдмрд╕реЗ рдЖрдо рд╕рдорд╛рдзрд╛рдиреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рдкреНрд░рд╕рд┐рджреНрдз рдкреНрд░реЛрдлреЗрд╕рд░ рдбреЛрдирд╛рд▓реНрдб рдиреНрдпреБрде рдХреЗ рдЫрд╛рддреНрд░ рдлреНрд░реИрдВрдХрд▓рд┐рди рдорд╛рд░реНрдХ рд▓рд┐рдЖрдВрдЧ рджреНрд╡рд╛рд░рд╛ рдкреНрд░рд╕реНрддрд╛рд╡рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдХреЛ рд▓рд┐рдЖрдВрдЧ-рдиреБрде рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ
рдЯреАрдПрдХреНрд╕ рдкреНрд░рдХрд╛рд╢рди рдкреНрд░рдгрд╛рд▓реА рдореЗрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬрд┐рд╕рдХреЗ рд▓реЗрдЦрдХ рдлрд┐рд░ рд╕реЗ рдбреАред рдиреЙрдЯ рд╣реИрдВред
рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рд╕реНрд░реЛрдд рд╢рдмреНрдж рдХреА рддреБрд▓рдирд╛ рдирд┐рдпрдореЛрдВ (рдЯреЗрдореНрдкрд▓реЗрдЯреНрд╕) рдХреЗ рдПрдХ рд╕реЗрдЯ рдХреЗ рд╕рд╛рде рдХрд░рдиреЗ рдкрд░ рдЖрдзрд╛рд░рд┐рдд рд╣реИред рдЬрд┐рддрдиреЗ рдЕрдзрд┐рдХ рдирд┐рдпрдо рдФрд░ рд╡реЗ рддреИрдпрд╛рд░ рдХрд┐рдП рдЬрд╛рдПрдВрдЧреЗ, рдЙрддрдиреЗ рд╣реА рдмреЗрд╣рддрд░ рд╣рд╛рдЗрдлрд╝рдиреЗрд╢рди рд░рдЦреЗ рдЬрд╛рдПрдВрдЧреЗред TeX рдкреИрдХреЗрдЬ рдореЗрдВ, рдЖрдк рдХрдИ рднрд╛рд╖рд╛рдУрдВ рдХреЗ рд▓рд┐рдП рддреИрдпрд╛рд░ рдХрд┐рдП рдЧрдП рдореБрдлреНрдд рдирд┐рдпрдо рд╕реЗрдЯ рдкрд╛ рд╕рдХрддреЗ рд╣реИрдВ, рдЖрдкрдХреЛ рдмрд╕ рдЙрдкрдпреЛрдЧ рдФрд░ рд╡рд┐рддрд░рдг рдХреА рд╢рд░реНрддреЛрдВ рдХреЛ рдзреНрдпрд╛рди рд╕реЗ рджреЗрдЦрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред
рдЙрджрд╛рд╣рд░рдг рдХреЗ рдирд┐рдпрдо:
pri1
3 рдмреА рдкрд░
2 рдФрд░ 1 рд╡реА
.po3zh2
рдкреНрд░рддреНрдпреЗрдХ рдирд┐рдпрдо рдореЗрдВ рдЙрдирдХреЗ рдмреАрдЪ рдЕрдХреНрд╖рд░ рдФрд░ рд╕рдВрдЦреНрдпрд╛рдПрдБ рд╣реЛрддреА рд╣реИрдВ, рд╕рд╛рде рд╣реА рдЖрд░рдВрдн рдФрд░ рдЕрдВрдд рдореЗрдВ рд╕рдВрдЦреНрдпрд╛рдПрдБ рднреА рд╣реЛрддреА рд╣реИрдВред рдЕрдВрдХ 0 рдЖрдорддреМрд░ рдкрд░ рдЫреЛрдбрд╝рд╛ рдЬрд╛рддрд╛ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдкрд╣рд▓реЗ рдирд┐рдпрдо рдХреЛ
0001 рдХреЗ рд░реВрдк рдореЗрдВ рд╕рдордЭрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред рдЕрдХреНрд╖рд░реЛрдВ рдХрд╛ рдПрдХ рдЕрдиреБрдХреНрд░рдо рдПрдХ рд╢рдмреНрдж рдХрд╛ рдПрдХ рд╣рд┐рд╕реНрд╕рд╛ рд╣реИ рдЬрд┐рд╕рдХреЗ рд▓рд┐рдП рдПрдХ рдЕрдиреБрд╡рд╛рдж рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдЕрд░реНрдерд╛рдд рдпрд╣ рдХреНрд░рдо рд╢рдмреНрдж рдореЗрдВ рдореМрдЬреВрдж рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рд╕рдВрдЦреНрдпрд╛рдУрдВ рдХреЛ "рд╕реНрддрд░" рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ, рд╡реЗ рдирд┐рдпрдореЛрдВ рдФрд░ рдЗрд╕реА рд╕реНрдерд┐рддрд┐ рдореЗрдВ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рдХреЗ рдмреАрдЪ рдкреНрд░рд╛рдердорд┐рдХрддрд╛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рддреЗ рд╣реИрдВред рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рдирдВрдмрд░, рдЬрд┐рд╕рдореЗрдВ 0 рднреА рд╢рд╛рдорд┐рд▓ рд╣реИрдВ, рдЯреНрд░рд╛рдВрд╕рдлрд░ рдкрд░ рд░реЛрдХ рд╣реИред рдЕрдЬреАрдм - рдЕрдиреБрдорддрд┐ред рдирд┐рдпрдо рдХреА рд╢реБрд░реБрдЖрдд рдореЗрдВ рдбреЙрдЯ рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рдирд┐рдпрдо рддрднреА рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдЬрдм рдЕрдиреБрдХреНрд░рдо рд╢рдмреНрдж рдХреА рд╢реБрд░реБрдЖрдд рдореЗрдВ рд╣реЛред рдЗрд╕реА рддрд░рд╣, рдЕрдВрдд рдореЗрдВ рдПрдХ рдмрд┐рдВрджреБ рдХреЗ рд╕рд╛рде - рдЗрд╕ рдХреНрд░рдо рд╕реЗ рд╢рдмреНрдж рд╕рдорд╛рдкреНрдд рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рдпрджрд┐ рд╢реБрд░реБрдЖрдд рдФрд░ рдЕрдВрдд рдореЗрдВ рдПрдХ рдмрд┐рдВрджреБ рд╣реИ, рддреЛ рдирд┐рдпрдо рдореЗрдВ рдкреВрд░рд╛ рд╢рдмреНрдж рд╣реИред
рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдХреЗ рдореБрдЦреНрдп рдЪрд░рдг:
- рдЙрди рд╕рднреА рдирд┐рдпрдореЛрдВ рдХрд╛ рдЪрдпрди рдХрд░реЗрдВ рдЬреЛ рдЪрдпрдирд┐рдд рд╢рдмреНрдж рдХреЛ рдлрд┐рдЯ рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рд╢рдмреНрдж рдореЗрдВ рдкреНрд░рддреНрдпреЗрдХ рд╕реНрдерд┐рддрд┐ рдХреЗ рд▓рд┐рдП рд╕реНрддрд░реЛрдВ рдХрд╛ рдПрдХ рд╕реЗрдЯ рдорд┐рд▓рддрд╛ рд╣реИ (рдХрд┐рддрдиреЗ рдирд┐рдпрдо рдПрдХ рд╕реНрдерд┐рддрд┐ рдореЗрдВ рдереЗ, рдЗрд╕рд▓рд┐рдП рдХрдИ рд╕реНрддрд░ рдкреНрд░рд╛рдкреНрдд рд╣реЛрдВрдЧреЗ)ред
- рдкреНрд░рддреНрдпреЗрдХ рд╕реНрдерд┐рддрд┐ рдореЗрдВ, рдЕрдзрд┐рдХрддрдо рд╕реНрддрд░ рдЪреБрдиреЗрдВред рдпрджрд┐ рдпрд╣ рд╕рдо рд╣реИ, рддреЛ рдпрд╣рд╛рдВ рд╕реНрдерд╛рдирд╛рдВрддрд░рдг рдХрд░рдирд╛ рдЕрд╕рдВрднрд╡ рд╣реИ, рдпрджрд┐ рдпрд╣ рд╡рд┐рд╖рдо рд╣реИ, рддреЛ рдпрд╣ рд╕реНрдерд╛рдирд╛рдВрддрд░рдг рдХрд╛ рд╕реНрд╡реАрдХрд╛рд░реНрдп рд╕реНрдерд╛рди рд╣реИред
- рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдЕрд╕реНрд╡реАрдХрд╛рд░реНрдп рд╣рд╛рдЗрдлрд╝рди рдХреЛ рдХрд╛рдЯрдиреЗ рдХреЗ рд▓рд┐рдП (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд╢реБрд░реБрдЖрдд рдореЗрдВ рдпрд╛ рдЕрдВрдд рдореЗрдВ рдПрдХ рдЕрдХреНрд╖рд░)ред
рдЖрдЗрдП рджреЗрдЦреЗрдВ рдХрд┐ рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдПрдХ рдЙрджрд╛рд╣рд░рдг рдкрд░ рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ:
рд╕реНрд░реЛрдд рд╢рдмреНрдж:
рдПрд▓реНрдЧреЛрд░рд┐рдереНрдордирд┐рдпрдореЛрдВ рдХрд╛ рдПрдХ рд╕реЗрдЯ (TeX рд╕реЗ рд▓рд┐рдпрд╛ рдЧрдпрд╛):
lgo1
1g
o1ri
рдФрд░ 1t
i2tm
TM2
рд╕рднреА рдирд┐рдпрдореЛрдВ рдХреЗ рд╕рд╛рде рд╢рдмреНрдж рдХреА рддреБрд▓рдирд╛ рдХрд░реЗрдВ рдФрд░ рдЙрдЪреНрдЪрддрдо рд╕реНрддрд░ рдЪреБрдиреЗрдВ:

рд╕реНрддрд░ 1 рдХреЗ рд╕рд╛рде рдкрджреЛрдВ рдореЗрдВ, рдЖрдк рд╕реБрд░рдХреНрд╖рд┐рдд рд░реВрдк рд╕реЗ рдХреИрд░реА рд╕реЗрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рд╣рдореЗрдВ рдкрд░рд┐рдгрд╛рдо
"рдЕрд▓-рдЧреЛ-рддрд╛рд▓" рдорд┐рд▓рддрд╛ рд╣реИ ред
рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди
рдЕрдм рд╣рдо рдЗрд╕ рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдХреЛ C ++ рдореЗрдВ рд▓рд╛рдЧреВ рдХрд░рддреЗ рд╣реИрдВред рдореБрдЭреЗ рдЖрдИрдУрдПрд╕ рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХреЗ рд▓рд┐рдП рдПрдХ рдХрд╛рд░реНрдпрд╢реАрд▓ рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдереА, рдЗрд╕рд▓рд┐рдП рдореИрдВрдиреЗ рд╕реА-рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХреЗ рд░реВрдк рдореЗрдВ рд╕рдм рдХреБрдЫ рдХрд┐рдпрд╛ред рдореЙрдбреНрдпреВрд▓ рдХрд┐рд╕реА рднреА рд╕реНрдерд╛рди рдпрд╛ рдордВрдЪ рдХреЗ рд╕рдВрджрд░реНрдн рдХреЗ рдмрд┐рдирд╛ рд▓рд┐рдЦрд╛ рдЧрдпрд╛ рд╣реИ; рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд╣реАрдВ рднреА рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
рдирд┐рдпрдо рдЗрд╕ рддрд░рд╣ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛:
struct pattern_t { std::basic_string<unichar> str; std::vector<unsigned char> levels; };
рд╣рдо рдкреНрд░рддреНрдпреЗрдХ рдирд┐рдпрдо рдХреЛ "рд╡рд░реНрдгреЛрдВ рдХреЗ рд╢реБрджреНрдз рдЕрдиреБрдХреНрд░рдо" + "рд╕реНрддрд░реЛрдВ рдХреЗ рд╕реЗрдЯ" рдХреЗ рд░реВрдк рдореЗрдВ рдмрджрд▓ рджреЗрдВрдЧреЗ, рддрд╛рдХрд┐ рднрд╡рд┐рд╖реНрдп рдореЗрдВ рдЗрд╕реЗ рд▓рд╛рдЧреВ рдХрд░рдирд╛ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╣реЛред
рдирд┐рдпрдореЛрдВ рдХрд╛ рдПрдХ рд╕реЗрдЯ:
struct pattern_list_t { std::vector<pattern_t*> list; };
рдирд┐рдпрдореЛрдВ рд╕реЗ рдмрд╛рд╣рд░ рд╕реНрддрд░реЛрдВ рдХреЛ рдЦреАрдВрдЪрдиреЗ рдХреЗ рд▓рд┐рдП рдХреЛрдб рд╕рд░рд▓ рд╣реИ; рдЖрдк рдЗрд╕реЗ рд▓реЗрдЦ рдХреЗ рдЕрдВрдд рдореЗрдВ рд▓рд┐рдВрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдкреВрд░реНрдг рд╕реНрд░реЛрдд рдХреЛрдб рдореЗрдВ рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВред
рд╣рдо рдирд┐рдпрдореЛрдВ рдХреА рд╕реВрдЪреА рдХреЛ рднрд░рдиреЗ рдХреЗ рдмрд╛рдж, рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдХреЗ рд╕рд╣реА рдФрд░ рдХреБрд╢рд▓ рд╕рдВрдЪрд╛рд▓рди рдХреЛ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЗрд╕реЗ рдХреНрд░рдордмрджреНрдз рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рд╣рдо рдЕрдкрдирд╛ рдХрдо рдХрд╛рд░реНрдп рд▓рд┐рдЦрддреЗ рд╣реИрдВ рдФрд░ рдорд╛рдирдХ рдЫрдБрдЯрд╛рдИ рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рд▓рд╛рдЧреВ рдХрд░рддреЗ рд╣реИрдВ:
bool pattern_compare(const pattern_t* a, const pattern_t* b) { bool first = a->str.size() < b->str.size(); size_t min_size = first ? a->str.size() : b->str.size(); for (size_t i = 0; i < min_size; ++i) { if (a->str[i] < b->str[i]) return true; else if (a->str[i] > b->str[i]) return false; } return first; } void sort_pattern_list(pattern_list_t* pattern_list) { if (!pattern_list) return; std::sort(pattern_list->list.begin(), pattern_list->list.end(), pattern_compare); }
рдЕрдм рд╕реАрдзреЗ рд╣рд╛рдЗрдлрд╝рдиреЗрд╢рди рдХреЛ рдЦреЛрдЬрдиреЗ рд╡рд╛рд▓рд╛ рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо:
std::vector<unsigned char> levels; levels.assign(word_string.size(), 0); for (size_t i = 0; i < word_string.size()-2; ++i) { std::vector<pattern_t*>::const_iterator pattern_iter = pattern_list->list.begin(); for (size_t count = 1; count <= word_string.size()-i; ++count) { pattern_t pattern_from_word; pattern_from_word.str = word_string.substr(i, count); if (pattern_compare(&pattern_from_word, *pattern_iter)) continue; pattern_iter = std::lower_bound(pattern_iter, pattern_list->list.end(), &pattern_from_word, pattern_compare); if (pattern_iter == pattern_list->list.end()) break; if (!pattern_compare(&pattern_from_word, *pattern_iter)) { for (size_t level_i = 0; level_i < (*pattern_iter)->levels.size(); ++level_i) { unsigned char l = (*pattern_iter)->levels[level_i]; if (l > levels[i+level_i]) levels[i+level_i] = l; } } } }
рд╕реНрдЯреНрд░рд┐рдВрдЧ рд╢рдмреНрдж_рд╕реНрдЯреНрд░рд┐рдВрдЧ рдореЗрдВ рд╣рдордиреЗ рдореВрд▓ рд╢рдмреНрдж рдХреЛ рдЬреЛрдбрд╝рд╛ рд╡рд░реНрдгреЛрдВ рдХреЗ рд╕рд╛рде рд░рдЦрд╛ рд╣реИ 'ред' рдХрд┐рдирд╛рд░реЛрдВ рдХреЗ рд╕рд╛рде, рддрд╛рдХрд┐ рдирд┐рдпрдореЛрдВ рдХреЛ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдЪрдпрдирд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдП рдЬрд┐рд╕рдореЗрдВ рд╢рдмреНрдж рдореЗрдВ рдЙрдирдХреА рд╕реНрдерд┐рддрд┐ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдирд┐рд░реНрджреЗрд╢ рд╣реЛрдВред рдЕрдм
I = 0 рд╕реЗ N рдХреЗ рд╕рд╛рде рдкреНрд░рддреНрдпреЗрдХ рд╡рд░реНрдг рдХреЗ рд▓рд┐рдП рд╕реНрд░реЛрдд рд╢рдмреНрдж рдореЗрдВ
, рд╣рдо 1 рд╕реЗ рдиреА рддрдХ рдХреА рд▓рдВрдмрд╛рдИ рдФрд░
i рдХреЗ рд╕рд╛рде рд╢реБрд░реВ рд╣реЛрдиреЗ рд╡рд╛рд▓реЗ рд╕рднреА рд╕рдмрд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╕реЙрд░реНрдЯ рдХрд░рддреЗ рд╣реИрдВред рд╣рдо рдорд╛рдирдХ рд╡реЗрдХреНрдЯрд░ рдХреЗ рд╕рд╛рде рдирд┐рдпрдо рд╡реЗрдХреНрдЯрд░ рдореЗрдВ рдкреНрд░рддреНрдпреЗрдХ
рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрди рдХреЗ рд▓рд┐рдП
рдЦреЛрдЬ рдХрд░рддреЗ рд╣реИрдВ
:: рдирд┐рдЪрд▓рд╛_рдмрд╛рдЙрдВрдб рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо ред рд╣рдо рдорд╛рдирддреЗ рд╣реИрдВ рдХрд┐ рдирд┐рдпрдореЛрдВ рдХреЛ рд╣рдорд╛рд░реА рдЬрд╝рд░реВрд░рдд рдХреЗ рдЕрдиреБрд╕рд╛рд░ рдХреНрд░рдордмрджреНрдз рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рдФрд░ рд╣рд░ рдЪрд░рдг рдкрд░ рдЗрд╕реЗ рдлрд┐рд░ рд╕реЗ рдкреВрд░рд╛ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред рдЬрдм рд╣рдо рдПрдХ рдореИрдЪ рдкрд╛рддреЗ рд╣реИрдВ, рддреЛ рд╕реНрддрд░ рд╡реЗрдХреНрдЯрд░ рд▓реЗрддреЗ рд╣реИрдВ рдФрд░ рдЗрд╕реЗ рд╡рд░реНрддрдорд╛рди рдкрд░рд┐рдгрд╛рдо рдкрд░ рд▓рд╛рдЧреВ рдХрд░рддреЗ рд╣реИрдВ, рдЕрд░реНрдерд╛рддред рдпрджрд┐ рдирд┐рдпрдо рдореЗрдВ рд╡рд░реНрддрдорд╛рди рд╕реНрдерд┐рддрд┐ рдХрд╛ рд╕реНрддрд░ рдЕрдзрд┐рдХ рд╣реИ, рддреЛ рдЗрд╕реЗ рдкреБрд░рд╛рдиреЗ рдХреЗ рдмрдЬрд╛рдп рдпрд╛рдж рд░рдЦреЗрдВред
рд╡реЗрдХреНрдЯрд░ рд╕реНрддрд░ рдореЗрдВ, рдкреНрд░рддреНрдпреЗрдХ рд╕реНрдерд┐рддрд┐ рдХреЗ рд▓рд┐рдП рдЕрдзрд┐рдХрддрдо рд╕реНрддрд░ рдорд╛рди рд╕рдВрдЪрд┐рдд рд╣реЛрддреЗ рд╣реИрдВред рдпрд╣ рд╡рд┐рд╖рдо рдореВрд▓реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП рдЗрд╕рдХреА рдЬрд╛рдВрдЪ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмрдирд╛ рд╣реБрдЖ рд╣реИред
mask_size = levels.size()-2; mask = new unsigned char[mask_size]; for (size_t i = 0; i < mask_size; ++i) { if (levels[i+1] % 2 && i) mask[i] = 1; else mask[i] = 0; }
TeX рд╕реЗ рдирд┐рдпрдореЛрдВ рдХреЗ рдПрдХ рд╕реЗрдЯ рдХреЗ рд▓рд┐рдП рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдХреЗ рдЙрджрд╛рд╣рд░рдг:
рдкреНрд░реЛ рдЧреНрд░рд╛рдо
рдмреЗрд░-рдХреА-рдирд╣реАрдВ-ti-рдХрд╛
рд░реЛрдирд╛
рдЗрди-рдж-рдореИрдВ рдЪреА-ya
рдЯреВ-рдПрдХ-рд╕реМ-рдПрдЯ-рдореБрдЭреЗ-рдЪрд╛-рддреЗрд▓ рд╕рддреНрддрд╛
рдЬрдм-рдЧреАрд▓рд╛
рдЙрджрд╛рд╣рд░рдгреЛрдВ рдХреЗ рд╕рд╛рде рддреИрдпрд╛рд░ рд╕реА ++ рдХреЛрдб
рдпрд╣рд╛рдВ рдбрд╛рдЙрдирд▓реЛрдб рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛
рд╣реИ ред рдореБрдЦреНрдп рдорд╛рдорд▓рд╛ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдкрд░реАрдХреНрд╖рдг рдХреЗрд╕ (рдПрдиреНрдХреЛрдбрд┐рдВрдЧ рд╡рд┐рдВрдбреЛрдЬрд╝ -1251), рдкреИрдЯрд░реНрди рдореЗрдВ рдирд┐рдпрдоред h рдлрд╝рд╛рдЗрд▓ред