рдкреНрд░рд╕реНрддрд╛рд╡рдирд╛

рдмрд╣реБрдд рд╕рдордп рдкрд╣рд▓реЗ рдореИрдВрдиреЗ рд╣рдмреЗрд░реА рдкрд░
рдПрдХ рд▓реЗрдЦ рдкрдврд╝рд╛ рдерд╛ рдЬрд┐рд╕рдиреЗ рдореБрдЭреЗ рдПрдХ рджрд┐рд▓рдЪрд╕реНрдк рдкрд╣реЗрд▓реА рдХреА рдпрд╛рдж рджрд┐рд▓рд╛рдИ рдереА рдЬрд┐рд╕реЗ "
рдЖрдЗрдВрд╕реНрдЯреАрди рдкрд╣реЗрд▓реА " рдпрд╛ "рдЬрд╝реЗрдмрд░рд╛ рдкрд╣реЗрд▓реА" рдХрд╣рд╛ рдЬрд╛рддрд╛ рдерд╛ред рд╕рдВрднрд╡рддрдГ рдЖрдк рдореЗрдВ рд╕реЗ рдмрд╣реБрдд рд╕реЗ рд▓реЛрдЧреЛрдВ рдиреЗ рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХреЛ рдХрд╛рдЧрдЬ рдХреЗ рдПрдХ рдЯреБрдХрдбрд╝реЗ рдкрд░ рд╣рд▓ рдХрд┐рдпрд╛ рдФрд░ рдЗрд╕ рдмрд╛рдд рдкрд░ рдЧрд░реНрд╡ рдХрд┐рдпрд╛ рдХрд┐ рд╡реЗ рджреБрдирд┐рдпрд╛ рдХреА рдЖрдмрд╛рджреА рдХрд╛ рдХреБрдЫ рдкреНрд░рддрд┐рд╢рдд рд╕рдХреНрд╖рдо рд╣реИрдВред
рд▓реЗрдЦ рдкрдврд╝рдиреЗ рдХреЗ рдмрд╛рдж, рдореИрдВрдиреЗ рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХреЗ рд╕рдорд╛рдзрд╛рди рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕реЛрдЪрд╛ред рд▓реЗрдЦ рдореЗрдВ рдкреНрд░рд╕реНрддреБрдд рджреГрд╖реНрдЯрд┐рдХреЛрдг рджрд┐рд▓рдЪрд╕реНрдк рдерд╛ рдФрд░ рдмреНрд▓реЙрдЧ рдХреЗ рдирд╛рдо рдХреЛ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд╕рд╣реА рдард╣рд░рд╛рдпрд╛, рд▓реЗрдХрд┐рди рдпрд╣ рдореБрдЭреЗ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд╕реНрдкрд╖реНрдЯ рдирд╣реАрдВ рд▓рдЧ рд░рд╣рд╛ рдерд╛ред рдлрд┐рд▓рд╣рд╛рд▓, рдореБрдЭреЗ рд╣рд╛рд╕реНрдХреЗрд▓ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рднрд╛рд╖рд╛ рдореЗрдВ рджрд┐рд▓рдЪрд╕реНрдкреА рд╣реИ, рдЬреЛ рдорд╕реНрддрд┐рд╖реНрдХ рдХреЛ рдЧрд░реНрдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдкрдиреЗ рдЖрдк рдореЗрдВ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЙрдкрдпреБрдХреНрдд рд╣реИ, рд▓реЗрдХрд┐рди рдЗрд╕ рдкрд░ рдкрд╣реЗрд▓реА рдХреЛ рд╣рд▓ рдХрд░рдирд╛ рдореЗрд░реЗ рд▓рд┐рдП рдПрдХ рдмрдбрд╝реА рдЪреБрдиреМрддреА рдереАред
рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо
рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, рдХрд╛рд░реНрдп рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрддрд╛ рд╣реИ:
- рд╡рд╕реНрддреБрдУрдВ рдХрд╛ рдПрдХ рдХреНрд░рдордмрджреНрдз рд╕реЗрдЯ рд╣реИ (рд╕реНрдерд┐рддрд┐ рдореЗрдВ рдкрд╛рдВрдЪ рд╣реИрдВ рдФрд░ рдпреЗ рдПрдХ рд╣реА рд╕рдбрд╝рдХ рдкрд░ рдШрд░ рд╣реИрдВ);
- рдкреНрд░рддреНрдпреЗрдХ рдСрдмреНрдЬреЗрдХреНрдЯ рдореЗрдВ рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХрд╛ рдПрдХ рд╕реЗрдЯ рд╣реЛрддрд╛ рд╣реИ, рдЬреЛ рдмрджрд▓реЗ рдореЗрдВ рдореВрд▓реНрдпреЛрдВ рдХреЗ рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рд╕реЗрдЯ рдкрд░ рд▓реЗ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ (рдРрд╕реА рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХреА рд╕реНрдерд┐рддрд┐ рдореЗрдВ рднреА рдкрд╛рдВрдЪ рд╣реИрдВ: рдорд╛рд▓рд┐рдХ рдХреА рд░рд╛рд╖реНрдЯреНрд░реАрдпрддрд╛, рдШрд░ рдХрд╛ рд░рдВрдЧ, рдкрд╛рд▓рддреВ, рдкрд╕рдВрджреАрджрд╛ рдкреЗрдп рдФрд░ рдорд╛рд▓рд┐рдХ рдХрд╛ рд╕рд┐рдЧрд░реЗрдЯ рдмреНрд░рд╛рдВрдб);
- рд╡рд┐рднрд┐рдиреНрди рд╡рд╕реНрддреБрдУрдВ рдХреЗ рд▓рд┐рдП рд╡рд┐рд╢реЗрд╖рддрд╛ рдорд╛рди рд╕рдорд╛рди рдирд╣реАрдВ рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдкреНрд░рддреНрдпреЗрдХ рд╡рд┐рд╢реЗрд╖рддрд╛ рдХреЗ рдореВрд▓реНрдпреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рд╡рд╕реНрддреБрдУрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рдХреЗ рдмрд░рд╛рдмрд░ рд╣реИред
- рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдХрдИ рдкреНрд░рддрд┐рдмрдВрдз (15) рджрд┐рдП рдЧрдП рд╣реИрдВ рдЬреЛ рд╡рд┐рд╢реЗрд╖рддрд╛ рдореВрд▓реНрдпреЛрдВ рдХреЗ рд╕рдВрдпреЛрдЬрди рдХрд╛ рд╡рд░реНрдгрди рдХрд░рддреЗ рд╣реИрдВ (рд╕реНрдерд┐рддрд┐ рдХрд╛ рдкреВрд░рд╛ рдкрд╛рда рд▓реЗрдЦ рдХреА рд╢реБрд░реБрдЖрдд рдореЗрдВ рдПрдХ рд▓рд┐рдВрдХ рд╕реЗ рдкрдврд╝рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ)ред
рд╕рднреА рд╡рд╕реНрддреБрдУрдВ (рдпрд╛ рдЙрдирдореЗрдВ рд╕реЗ рдХреБрдЫ, рдЬреЛ рдПрдХ рдФрд░ рдЕрдиреНрдп рдорд╛рдорд▓реЛрдВ рдореЗрдВ рдПрдХ рд╣реА рд╣реИ) рдХреЗ рд╡рд┐рд╢реЗрд╖рддрд╛ рдореВрд▓реНрдпреЛрдВ рдХреЛ рдкреБрдирд░реНрд╕реНрдерд╛рдкрд┐рдд рдХрд░рдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реИ, рдЬреЛ рдкреНрд░рддрд┐рдмрдВрдзреЛрдВ рдХрд╛ рдЦрдВрдбрди рдирд╣реАрдВ рдХрд░реЗрдЧрд╛ред
рдкрд╣рд▓реЗ рд╕реЛрдЪрд╛ рдерд╛ рдХрд┐ рдХрд╛рд░реНрдпреЛрдВ рдХреА рд╢рд░реНрддреЛрдВ рдХреА рдкреВрд░реНрддрд┐ рдХреА рдЬрд╛рдБрдЪ рдХреЗ рд╕рд╛рде рд╡рд┐рдХрд▓реНрдкреЛрдВ рдХреА рдПрдХ рдкреВрд░реА рдЧрдгрдирд╛ рд╣реИ, рд▓реЗрдХрд┐рди рд╕рд░рд▓ рдЧрдгрдирд╛ рджрд░реНрд╢рд╛рддреА рд╣реИ рдХрд┐ рд╕рдВрдпреЛрдЬрдиреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рдмрд░рд╛рдмрд░ рд╣реИ
5! 5 = 24.883.200.000
5! 5 = 24.883.200.000
, рдЬреЛ рдХрд╛рдлреА рд╣реИред
рдХреБрдЫ рд╡рд┐рдЪрд╛рд░реЛрдВ рдХреЗ рдХреНрд░рдо рдореЗрдВ, рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХрд╛ рдЬрдиреНрдо рд╣реБрдЖ: рд╕рдорд╛рдзрд╛рдиреЛрдВ рдХрд╛ рдПрдХ рд╕реНрд╡реАрдХрд╛рд░реНрдп рд╕реНрдерд╛рди рд╣реИ, рдмрд╛рдзрд╛рдПрдВ рд╕рдорд╛рдзрд╛рдиреЛрдВ рдХреЗ рд╕рдмрд╕реЗрдЯ рдХрд╛ рд╡рд░реНрдгрди рдХрд░рддреА рд╣реИрдВ, рд╕рд╣реА рд╕рдорд╛рдзрд╛рди рдРрд╕реЗ рд╕рдмрд╕реЗрдЯ рдХреЗ рдЪреМрд░рд╛рд╣реЗ рдкрд░ рдЭреВрда рдмреЛрд▓рддреЗ рд╣реИрдВ (рдпрд╛рдиреА, рдЙрд╕ рдХреНрд╖реЗрддреНрд░ рдореЗрдВ рдЬрд╣рд╛рдВ рд╕рднреА рд╕реНрдерд┐рддрд┐рдпрд╛рдВ рд╕рдВрддреБрд╖реНрдЯ рд╣реИрдВ)ред
рдЕрдЧрд▓реЗ рдЪрд░рдг рдореЗрдВ рдЯреЗрдореНрдкрд▓реЗрдЯреНрд╕ рдХреЗ рдПрдХ рд╕реЗрдЯ рдХреЗ рд░реВрдк рдореЗрдВ рд╕рдорд╛рдзрд╛рдиреЛрдВ рдХреЗ рд╕рдмрд╕реЗрдЯ рдХрд╛ рд╡рд░реНрдгрди рдХрд░рдиреЗ рдХрд╛ рдирд┐рд░реНрдгрдп рдерд╛: рд╕рдорд╛рдзрд╛рди рдЬрд┐рд╕рдореЗрдВ рдХреБрдЫ рд╡рд╕реНрддреБрдУрдВ рдХреА рдХреБрдЫ рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдВ рддрдп рдХреА рдЧрдИ рд╣реИрдВ, рдЬрдмрдХрд┐ рдЕрдиреНрдп рдХрд┐рд╕реА рднреА рд╡реИрдз рдореВрд▓реНрдп рдХреЛ рд▓реЗ рд╕рдХрддреЗ рд╣реИрдВред рдФрд░ рдЗрд╕ рддрд░рд╣ рдХреЗ рдПрдХ рд╡рд┐рд╡рд░рдг рд╣реЛрдиреЗ рд╕реЗ, рдЖрдкрдХреЛ рдХреЗрд╡рд▓ рдЗрд╕ рддрд░рд╣ рд╕реЗ рд╡рд░реНрдгрд┐рдд рд╕реЗрдЯреЛрдВ рдХреЛ рдХреИрд╕реЗ рдирд┐рдХрд╛рд▓рдирд╛ рд╣реИ, рдпрд╣ рд╕реАрдЦрдирд╛ рд╣реЛрдЧрд╛ред
рдирд┐рд░реНрдгрдп
рдЬрдм рд╣рд╛рд╕реНрдХреЗрд▓ рдореЗрдВ рдПрдХ рд╕рдорд╛рдзрд╛рди рдХрд╛ рд╕рдВрдХрд▓рди рдФрд░ рдкреБрдирд░реНрд▓реЗрдЦрди рдХрд┐рдпрд╛ рдЧрдпрд╛, рддреЛ рдореБрдЭреЗ рди рдХреЗрд╡рд▓ рд╕рдорд╕реНрдпрд╛ рдХрд╛ рд╕рдорд╛рдзрд╛рди рдЦреЛрдЬрдиреЗ рдХреА рдЗрдЪреНрдЫрд╛ рд╕реЗ рдирд┐рд░реНрджреЗрд╢рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рдмрд▓реНрдХрд┐ рдПрдХ рд╕рдордЭрдиреЗ рдпреЛрдЧреНрдп рдХрд╛рд░реНрдпрдХреНрд░рдо рд▓рд┐рдЦрдиреЗ рдХреА рдЗрдЪреНрдЫрд╛ рд╕реЗ рднреА рдЬреЛ рдЖрд╕рд╛рдиреА рд╕реЗ рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдФрд░ рд╕реБрдВрджрд░ рд╣рд╛рд╕реНрдХреЗрд▓ рднрд╛рд╖рд╛ рджреЛрдиреЛрдВ рдХреЛ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░реЗрдЧрд╛ред
рдЗрд╕рд▓рд┐рдП, рдореИрдВрдиреЗ рдЕрдкреНрд░рд╢рд┐рдХреНрд╖рд┐рдд рд▓реЛрдЧреЛрдВ рджреНрд╡рд╛рд░рд╛ рдХрд╛рд░реНрдпрдХреНрд░рдо рдХреЛ рдкрдврд╝рдиреЗ рдореЗрдВ рд╣рд╕реНрддрдХреНрд╖реЗрдк рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рджреГрд╖реНрдЯрд┐рдХреЛрдгреЛрдВ рдХреЗ рдЙрдкрдпреЛрдЧ рдХреЛ рдХрдо рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХреАред рд╕рдорд╛рдзрд╛рди рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд╕рд╛рд░реНрд╡рднреМрдорд┐рдХ рд╣реЛрдиреЗ рдХрд╛ рджрд╛рд╡рд╛ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рд╣рд╛рд▓рд╛рдВрдХрд┐, рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреЗ рдЗрд╕ рд╡рд░реНрдЧ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреБрдЫ рдЙрдкрдХрд░рдгреЛрдВ рдХрд╛ рд╡рд░реНрдгрди рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред
рд╣рд╛рд▓рд╛рдБрдХрд┐, рдЕрдкрдиреЗ рд▓рд┐рдП рдкрдврд╝реЗрдВ - рдореИрдВрдиреЗ рдЖрдкрдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рд╕рд╛рд░реА рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ рдЫреЛрдбрд╝ рджреА рд╣реИрдВред
рд▓реЗрдХрд┐рди рдореБрдЭреЗ рдЖрдкрдХреА рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдкрд░ рднреА рдЦреБрд╢реА рд╣реЛрдЧреАред
- рдЖрдпрд╛рдд рдбреЗрдЯрд╛ ред рд╕реВрдЪреА ( рд▓реБрдХрдЕрдк , рдирдм)
- рдЖрдпрд╛рдд рдбреЗрдЯрд╛ ред рд╣реЛ рд╕рдХрддрд╛ рд╣реИ (рдореЗрдореНрдмреЗ , рдХреИрдЯрдорд╛рдпрдм рд╕реЗ)
- -----------------------------------------------
- - рдЖрдЗрдВрд╕реНрдЯреАрди рдХрд╛ рд░рд╣рд╕реНрдп -
- - рдЕрддрд╛рдореБрд░ рджреНрд╡рд╛рд░рд╛ -
- -----------------------------------------------
- ---------------------------
- - рдХрд╛рд░реНрдп рдХрд╛ рд╕рд╛рдорд╛рдиреНрдп рд╡рд┐рд╡рд░рдг -
- ---------------------------
- - рд╕рдорд╕реНрдпрд╛ рдХрд╛ рд╕рдорд╛рдзрд╛рди рд╡рд╕реНрддреБрдУрдВ рдХрд╛ рдПрдХ рдХреНрд░рдо рд╣реИ
- рдкреНрд░рдХрд╛рд░ рд╕рдорд╛рдзрд╛рди = [рд╡рд╕реНрддреБ]
- - рдкреНрд░рддреНрдпреЗрдХ рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЛ рд╡рд┐рд╢реЗрд╖рддрд╛ рдЬреЛрдбрд╝реЗ рдФрд░ рдЙрдирдХреЗ рдореВрд▓реНрдпреЛрдВ рдХреЗ рдПрдХ рд╕реЗрдЯ рджреНрд╡рд╛рд░рд╛ рд╡рд░реНрдгрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ
- рдкреНрд░рдХрд╛рд░ рд╡рд╕реНрддреБ = [( рд╕реНрдЯреНрд░рд┐рдВрдЧ , рд╕реНрдЯреНрд░рд┐рдВрдЧ )]
- - рдЧреБрдг-рдорд╛рди рдЬреЛрдбрд╝реА рдХрд╛ рд╕рдВрдХреЗрдд = рдЪрд┐рдиреНрд╣ рдХреЗ рд╕рд╛рде:
- Attr = : value = (attr , value)
- рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдБ = [ "рд░рд╛рд╖реНрдЯреНрд░реАрдпрддрд╛" , "рдШрд░" , "рдкрд╛рд▓рддреВ" , "рдкреЗрдп" , "рдзреБрдЖрдВ" ]
- рдЖрдХрд╛рд░ = 5
- - рд╣рдо рдХреБрдЫ рдХреЛ рд╕рдВрддреЛрд╖рдЬрдирдХ рд╕рдорд╛рдзрд╛рди рдЦреЛрдЬрдиреЗ рдХреА рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╣рд▓ рдХрд░реЗрдВрдЧреЗ
- - рдкреНрд░рддрд┐рдмрдВрдз
- - рд╣рдо рдЗрд╕реЗ рд╕рднреА рдирд┐рд░реНрдгрдпреЛрдВ рдХреЗ рд╕реЗрдЯ рд╕реЗ рд╢реБрд░реВ рдХрд░реЗрдВрдЧреЗ рдФрд░ рдзреАрд░реЗ-рдзреАрд░реЗ рд╕реНрдкрд╖реНрдЯ рдХрд░реЗрдВрдЧреЗ
- рдпрд╣ рдПрдХ рд╕рдорд╛рдзрд╛рди рддрдХ рдХрдо рд╣реЛрдиреЗ рддрдХ рдПрдХ рд╕реЗрдЯ рд╣реИ, рдЬреЛ рд╣реЛрдЧрд╛
- - рд╕рдЪред
- - рдЗрд╕рд▓рд┐рдП, рдПрдХ рд╡рд╕реНрддреБ рддреБрд░рдВрдд рдХрдИ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд╡рд╕реНрддреБрдУрдВ рдХрд╛ рд╡рд░реНрдгрди рдХрд░ рд╕рдХрддреА рд╣реИ,
- - рдЬрд┐рд╕рдореЗрдВ рдХреБрдЫ рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдБ рд╕реЗрдЯ рд╣реИрдВ, рдФрд░ рдмрд╛рдХреА (рд╕реЗрдЯ рдирд╣реАрдВ)
- - рдХреЛрдИ рднреА рд╣реЛ рд╕рдХрддрд╛ рд╣реИред рдЗрд╕рд▓рд┐рдП, рдПрдХ рдЦрд╛рд▓реА рд╡рд╕реНрддреБ рд╕рднреА рд╕рдВрднрд╡ рдХрд╛ рдПрдХ рдЯреЗрдореНрдкрд▓реЗрдЯ рд╣реИ
- - рд╡рд╕реНрддреБрдПрдВ:
- anyObject = [] :: рдСрдмреНрдЬреЗрдХреНрдЯ
- - рдФрд░ рдЦрд╛рд▓реА рд╡рд╕реНрддреБрдУрдВ рдХрд╛ рд╕реЗрдЯ рджрд┐рдП рдЧрдП рдХреЗ рд╕рд╛рдордиреЗ рд╕рднреА рдирд┐рд░реНрдгрдпреЛрдВ рдХрд╛ рд╕реЗрдЯ рд╣реИ
- - рдЖрдпрд╛рдо:
- anySolution = [anyObject | рдПрди n [1 .. рдЖрдХрд╛рд░]]
- - рдкреНрд░рддреНрдпреЗрдХ рд╕рдорд╛рдзрд╛рди, рд╕рдорд╛рдзрд╛рди рдХреЗ рд╕рдВрдЧрдд рд╕реЗрдЯ рдХрд╛ рд╡рд░реНрдгрди рдХрд░рддрд╛ рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рд╕рдорд╛рдзрд╛рди
- - [["рд░рд╛рд╖реНрдЯреНрд░реАрдпрддрд╛" =: "рдЕрдВрдЧреНрд░реЗрдЬ"], anyObject, anyObject]
- - рд╡рд╕реНрддреБрдУрдВ рдХреЗ рд╕рднреА рддреНрд░рд┐рднреБрдЬреЛрдВ рдХрд╛ рд╡рд░реНрдгрди рдХрд░рддрд╛ рд╣реИ, рдЬрд┐рдирдореЗрдВ рд╕реЗ рдкрд╣рд▓реА рдореЗрдВ рдПрдХ рд╡рд┐рд╢реЗрд╖рддрд╛ рд╣реИ
- - "рд░рд╛рд╖реНрдЯреНрд░реАрдпрддрд╛ рдЕрдВрдЧреНрд░реЗрдЬреА рд╣реИ"
- - рд▓реЗрдХрд┐рди рдлреИрд╕рд▓реЛрдВ рдХреЛ рд╕реНрдкрд╖реНрдЯ рдХрд░рдиреЗ рдореЗрдВ рд╣рдореЗрдВ рдХрдИ рдЕрд╕рдВрдЧрдд рд╣реЛрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ
- - рдирд┐рд░реНрдгрдп (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, "рдЕрдВрдЧреНрд░реЗрдЬ рдпрд╛ рдкрд╣рд▓реЗ рдпрд╛ рджреВрд╕рд░реЗ рд▓реЗрдХрд┐рди рдПрдХ рд╣реА рд╕рдордп рдореЗрдВ рдирд╣реАрдВ"):
- рдкреНрд░рдХрд╛рд░ рд╕рдорд╛рдзрд╛рди = [рд╕рдорд╛рдзрд╛рди]
- рдЦрд╛рд▓реА = [] :: рд╕рдорд╛рдзрд╛рди
- - рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдореЗрдВ рд╕рдорд╛рдзрд╛рди рдкрд░ рдкреНрд░рддрд┐рдмрдВрдз рд▓рдЧрд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ
- - рдкреНрд░рддреНрдпреЗрдХ рдмрд╛рдзрд╛ рдХрдИ рдирд┐рд░реНрдгрдпреЛрдВ рдХреЛ рдмрджрд▓ рджреЗрдЧреА
- - рдкрд░рд┐рдгрд╛рдо рдХрдИ рдЕрд╕рдВрдмрдВрдзрд┐рдд рд╕реЗрдЯ рдпрд╛ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ
- - рдлреИрд╕рд▓реЛрдВ рдХрд╛ рдЦрд╛рд▓реА рд╕реЗрдЯ
- рдкреНрд░рдХрд╛рд░ рдкреНрд░рддрд┐рдмрдВрдз = рд╕рдорд╛рдзрд╛рди тЖТ рд╕рдорд╛рдзрд╛рди
- - рдХрдИ рдлреИрд╕рд▓реЛрдВ рдкрд░ рдкреНрд░рддрд┐рдмрдВрдз рд▓рдЧрд╛рдирд╛
- - рдХрдИ рд╕рдорд╛рдзрд╛рдиреЛрдВ рдХреЛ рдмрджрд▓рддреЗ рд╕рдордп, рд╣рдо рдЬрд╛рдВрдЪ рдХрд░реЗрдВрдЧреЗ
- - рдЧреБрдг рдорд╛рдиреЛрдВ рдХреА рд╡рд┐рд╢рд┐рд╖реНрдЯрддрд╛:
- рд▓рд╛рдЧреВ рдХрд░реЗрдВ :: рдкреНрд░рддрд┐рдмрдВрдз тЖТ рд╕рдорд╛рдзрд╛рди тЖТ рд╕рдорд╛рдзрд╛рди
- рдкреНрд░рддрд┐рдмрдВрдзрд┐рдд рд╕реЙрд▓ рд▓рд╛рдЧреВ рдХрд░реЗрдВ =
- concat [ рдлрд╝рд┐рд▓реНрдЯрд░ (рдбреБрдкреНрд▓рд┐рдХреЗрдЯ рдирд╣реАрдВ ) (рдкреНрд░рддрд┐рдмрдВрдзрд┐рдд рд╕рдорд╛рдзрд╛рди) | рд╕рдорд╛рдзрд╛рди solution рддрд▓]
- рдЬрд╣рд╛рдБ
- рдбреБрдкреНрд▓рд┐рдХреЗрдЯ рд╕реЛрд▓реНрд╕ = рдХреЛрдИ рдбреБрдкреНрд▓рд┐рдХреЗрдЯ рд╡реИрд▓реНрдпреВрдЬрд╝ ( рдирдХреНрд╢рд╛ (рд╡реИрд▓реНрдпреВ рд╕реЛрд▓) рдПрдЯреНрд░рд┐рдмреНрдпреВрдЯреНрд╕)
- рдорд╛рди рдПрд╕рдПрд▓рдЖрд░ рдЕрдЯрд░ = рдорд╛рдирдЪрд┐рддреНрд░ (рд▓реБрдХрд┐рдВрдЧ рдПрдЯрд░) рд╕реЛрд▓
- рдбреБрдкреНрд▓рд┐рдХреЗрдЯ рд╡реИрд▓реНрдпреВрдЬрд╝ ' =
- рдорд╛рди рджреЗрдВ
- рдореЗрдВ (рд╡реИрд▓реНрд╕ val рдиреВрдм рд╡реИрд▓реНрд╕)
- - рд╡рд╕реНрддреБрдУрдВ рдХрд╛ рд╡рд░реНрдгрди рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рджреЛ рдкреИрдЯрд░реНрди рдХрд╛ рдкреНрд░рддрд┐рдЪреНрдЫреЗрджрди
- - рджреЛрдиреЛрдВ рд╕реНрд░реЛрдд рдЯреЗрдореНрдкрд▓реЗрдЯреНрд╕ рд╕реЗ рд╡рд┐рд╢реЗрд╖рддрд╛ рд╡рд╛рд▓реЗ рдПрдХ рдЯреЗрдореНрдкрд▓реЗрдЯ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ,
- - рдФрд░ рд╕реНрд░реЛрдд рдЯреЗрдореНрдкрд▓реЗрдЯ рдЕрд▓рдЧ рд╣реЛрдиреЗ рдкрд░ рдЕрд╕рдВрдЧрдд рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ
- - рд╕рдорд╛рди рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХреЗ рдореВрд▓реНрдп
- рджреЛрдиреЛрдВ :: рд╡рд╕реНрддреБ тЖТ рд╡рд╕реНрддреБ тЖТ рд╢рд╛рдпрдж рд╡рд╕реНрддреБ
- obj obj ' = foldl join (Just []) рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдБ - рд╡рд┐рд╢реЗрд╖рддрд╛ рдХреЗ рдЕрдиреБрд╕рд╛рд░ рд╕рдореНрдорд┐рд▓рд┐рдд рд╣реЛрдВ
- рдЬрд╣рд╛рдБ
- - рдпрджрд┐ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдПрдХ рдЦрд╛рд▓реА рд╕реЗрдЯ рд╣реИ, рддреЛ рдкрд░рд┐рдгрд╛рдо рднреА рдЦрд╛рд▓реА рд╣реИ
- Join Nothing = _ рдХреБрдЫ рдирд╣реАрдВ
- - рдЕрдиреНрдпрдерд╛ рд╣рдо рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рджреНрд╡рд╛рд░рд╛ рдмрд╛рдзрд╛рдУрдВ рдХреЗ рдореВрд▓реНрдпреЛрдВ рдХреА рддреБрд▓рдирд╛ рдХрд░рддреЗ рд╣реИрдВ
- join (рдмрд╕ рдмрд╛рдХреА) attr =
- рдорд╛рдорд▓рд╛ ( рд▓реБрдХрдЕрдк рдЕрдЯрд░ рдУрдЬ , рд▓реБрдХрд┐рдВрдЧ рдЕрдЯрд░ рдУрдмреНрдЬ тАЩ)
- (рдХреБрдЫ рдирд╣реАрдВ , рдХреБрдЫ рдирд╣реАрдВ) тЖТ рдмрд╕ рдЖрд░рд╛рдо рдХрд░реЛ
- (рдмрд╕ рдореВрд▓реНрдп , рдХреБрдЫ рдирд╣реАрдВ) тЖТ рдмрд╕ ((Attr = : value): рдмрд╛рдХреА)
- (рдХреБрдЫ рдирд╣реАрдВ , рдмрд╕ рдореВрд▓реНрдп) тЖТ рдмрд╕ ((Attr = : value): рдмрд╛рдХреА)
- (рдмрд╕ рдореВрд▓реНрдп , рдЬрд╕реНрдЯ рд╡реИрд▓реНрдпреВ тАЩ) тЖТ
- рдпрджрд┐ рдорд╛рди == рдорд╛рди '
- рддрдм рдмрд╕ ((attr = : value): рдмрд╛рдХреА)
- рдФрд░ рдХреБрдЫ рдирд╣реАрдВ
- - рдмреБрдирд┐рдпрд╛рджреА рдкреНрд░рддрд┐рдмрдВрдз - рдХрд┐рд╕реА рд╕реНрдерд┐рддрд┐ рдореЗрдВ рд╡рд╕реНрддреБ рдХреЗ рд╕рд╛рде рдореЗрд▓ рдЦрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП
- - рдкреВрд░реНрд╡ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдЯреЗрдореНрдкрд▓реЗрдЯ
- objectAt :: Int тЖТ рдСрдмреНрдЬреЗрдХреНрдЯ тЖТ рдкреНрд░рддрд┐рдмрдВрдз
- objectAt n obj solution =
- рдорд╛рдорд▓рд╛ рджреЛрдиреЛрдВ obj (рд╕рдорд╛рдзрд╛рди !! (n - 1))
- рдХреБрдЫ рднреА рдирд╣реАрдВ тЖТ рдЦрд╛рд▓реА - рдпрджрд┐ рдЯреЗрдореНрдкреНрд▓реЗрдЯ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рд╡рд╣рд╛рдВ рдЦрдбрд╝реЗ рдХреЗ рд╕рд╛рде рд╕рдВрдЧрдд рдирд╣реАрдВ рд╣реИ
- рдмрд╕ Res тЖТ [рдмрджрд▓реЗрдВ n Res рд╕рдорд╛рдзрд╛рди]
- рдЬрд╣рд╛рдБ
- nx xs рдХреЛ рдмрджрд▓реЗрдВ = take (n - 1) xs ++ [x] ++ рдбреНрд░реЙрдк n xs
- - рдкреНрд░рддрд┐рдмрдВрдзреЛрдВ рдкрд░ рд╕рдВрдЪрд╛рд▓рди ---------------------------------------------
- - рдкреНрд░рддрд┐рдЪреНрдЫреЗрджрди - рджреЛрдиреЛрдВ рдкреНрд░рддрд┐рдмрдВрдз рд╕рддреНрдп рд╣реИрдВ
- ( < & > ) rs rs 'рд╕рдорд╛рдзрд╛рди = rs (rs' рд╕рдорд╛рдзрд╛рди рд▓рд╛рдЧреВ рдХрд░реЗрдВ)
- r _ all = foldl1 ( < & > ) - рд╕реЗрдЯ рд╕реЗ рд╕рднреА рдкреНрд░рддрд┐рдмрдВрдз
- - рдорд┐рд▓рди - рдПрдХ рдпрд╛ рджреВрд╕рд░рд╛ рд╕рддреНрдп рд╣реИ
- ( <|> ) rs rs 'solution = rs solution ++ rs' рд╕рдорд╛рдзрд╛рди
- r _ any = foldl1 ( <|> ) - рдкреНрд░рддрд┐рдмрдВрдзреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ
- - рдкреНрд░рд╛рдкреНрдд рдкреНрд░рддрд┐рдмрдВрдз ---------------------------------------------- -
- - рдХреБрдЫ рд╡рд╕реНрддреБ рд╣реИ (рдпрд╛ рддреЛ рдкрд╣рд▓реА рд╕реНрдерд┐рддрд┐ рдореЗрдВ, рдпрд╛ рджреВрд╕рд░реА рдореЗрдВ, рдЖрджрд┐)
- present obj = r _ any [objectAt n obj | рдПрди .. [1 .. 5]]
- - рдПрдХ рд╡рд╕реНрддреБ рд╣рдореЗрд╢рд╛ рджреВрд╕рд░реЗ рдХрд╛ рдЕрдиреБрд╕рд░рдг рдХрд░рддреА рд╣реИ
- obj рд╕реЗ рдкрд╣рд▓реЗ ' = r _ any [
- objectAt n obj < & > objectAt (n + 1) obj ' | n .. [1 .. рдЖрдХрд╛рд░ - 1]]
- - рдкрд╛рд╕ (рдпрд╛ рджреВрд╕рд░реЗ рд╕реЗ рдкрд╣рд▓реЗ рдПрдХ, рдпрд╛ рдкрд╣рд▓реЗ рдХреЗ рдмрд╛рдж рджреВрд╕рд░рд╛)
- рдирд┐рдХрдЯ obj obj ' = (obj `рд╕реЗ рдкрд╣рд▓реЗ` obj') <|> (obj '` рд╕реЗ рдкрд╣рд▓реЗ `obj)
- ------------------------------------------------
- - рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╕рдорд╕реНрдпрд╛рдУрдВ рдХрд╛ рд╡рд┐рд╡рд░рдг -
- ------------------------------------------------
- рдкреНрд░рддрд┐рдмрдВрдз =
- objectAt 1 [ "рд░рд╛рд╖реНрдЯреНрд░реАрдпрддрд╛" = : "рдиреЙрд░реНрд╡реЗрдЬрд┐рдпрди" ] < & >
- рдореМрдЬреВрдж рд╣реИ [ "рд░рд╛рд╖реНрдЯреНрд░реАрдпрддрд╛" = : "рдЕрдВрдЧреНрд░реЗрдЬ" , "рдШрд░" = : "рд▓рд╛рд▓" ] < & >
- ([ "рдШрд░" = : "рд╣рд░рд╛" ] `рдкрд╣рд▓реЗ " [ "рдШрд░" = : "рд╕рдлреЗрдж" ] < & >
- рдореМрдЬреВрдж рд╣реИ [ "рд░рд╛рд╖реНрдЯреНрд░реАрдпрддрд╛" = : "рдбреЗрди" , "рдкреЗрдп" = : "рдЪрд╛рдп" ] < & >
- ([ "рдзреБрдЖрдВ" = : " рдорд╛рд▓рдмреЛрд░реЛ " ] `рдирд┐рдХрдЯ` [ " рдкрд╛рд▓рддреВ " = : " рдмрд┐рд▓реНрд▓реА " ] < & >
- рдореМрдЬреВрдж рд╣реИ [ "рдзреВрдореНрд░рдкрд╛рди" = : "рдбрдирд╣рд┐рд▓" , "рдШрд░" = : "рдкреАрд▓рд╛" ] < & >
- рдореМрдЬреВрдж рд╣реИ [ "рд░рд╛рд╖реНрдЯреНрд░реАрдпрддрд╛" = : "рдЬрд░реНрдорди" , "рдзреБрдЖрдВ" = : "рд░реЛрдердорд╛рдиреНрд╕" ] < & >
- objectAt 3 [ "рдкреЗрдп" = : "рджреВрдз" ] < & >
- ([ "рдзреБрдЖрдВ" = : " рдорд╛рд▓рдмреЛрд░реЛ " ] `рдирд┐рдХрдЯ` [ " рдкреЗрдп " = : " рдЬрд▓ " ] < & >
- рдореМрдЬреВрдж рд╣реИ [ "рдзреБрдЖрдВ" = : "рдкрд╛рд▓реНрдорд╛рд▓" , "рдкрд╛рд▓рддреВ" = : "рдкрдХреНрд╖реА" ] < & >
- рдореМрдЬреВрдж рд╣реИ [ "рд░рд╛рд╖реНрдЯреНрд░реАрдпрддрд╛" = : "рд╕реНрд╡реЗрдб" , "рдкрд╛рд▓рддреВ" = : "рдбреЙрдЧ" ] < & >
- ([ "рд░рд╛рд╖реНрдЯреНрд░реАрдпрддрд╛" = : "рдиреЙрд░реНрд╡реЗрдЬрд┐рдпрди" ] `рдирд┐рдХрдЯ` [ " рдШрд░ " = : " рдмреНрд▓реВ " ] < & >
- рдореМрдЬреВрдж рд╣реИ "" рдкрд╛рд▓рддреВ " = : " рдШреЛрдбрд╝рд╛ " , " рдШрд░ " = : " рдиреАрд▓рд╛ " ] < & >
- рдореМрдЬреВрдж рд╣реИ [ "рдзреВрдореНрд░рдкрд╛рди" = : "рд╡рд┐рдирдлреАрд▓реНрдб" , "рдкреЗрдп" = : "рдмреАрдпрд░" ] < & >
- рдореМрдЬреВрдж [ "рдШрд░" = : "рдЧреНрд░реАрди" , "рдкреЗрдп" = : "рдХреЙрдлреА" ] < & >
- рдореМрдЬреВрдж рд╣реИ [ "pet" = : "рдордЫрд▓реА" ]
- - рдордЫрд▓реА рдХрд╣реАрдВ рджрд┐рдЦрд╛рдИ рдирд╣реАрдВ рджреЗрддреА рд╣реИ, рдпрд╣ рдкреВрдЫрдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реИ рдХрд┐ рдпрд╣ рдХреНрдпрд╛ рд╣реИ
- рдореБрдЦреНрдп = рд╕рдорд╛рдзрд╛рди рджреЗрдВ = рдкреНрд░рддрд┐рдмрдВрдз рд▓рд╛рдЧреВ рдХрд░реЗрдВ [anySolution]
- рдЕрдЧрд░ рд▓рдВрдмрд╛рдИ рд╕рдорд╛рдзрд╛рди > 1 рдореЗрдВ
- рдлрд┐рд░ putStrLn ( "рдХреБрд▓ рд╕рдорд╛рдзрд╛рди рд╕реЗрдЯ:" ++ рд╢реЛ ( рд▓рдВрдмрд╛рдИ рд╕рдорд╛рдзрд╛рди))
- рдФрд░ $ $ descrSolution $ рд╕рд┐рд░ рд╕рдорд╛рдзрд╛рди рдбрд╛рд▓ рджрд┐рдпрд╛
- -----------------------------
- - рд╕реНрдЯреНрд░рд┐рдВрдЧ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ -
- -----------------------------
- - рдПрдХ рд╡реНрдпрдХреНрддрд┐ рдХрд╛ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡:
- descrMan man = descr "nationality" ++ "рдореЗрдВ рд░рд╣рддрд╛ рд╣реИ" ++
- descr "рдШрд░" ++ "рдШрд░," ++ рдХрд╛ рдорд╛рд▓рд┐рдХ рд╣реИ
- descr "pet" ++ ", рдкреЗрдп" ++
- descr "рдкреЗрдп" ++ "рдФрд░ рдзреВрдореНрд░рдкрд╛рди" ++
- descr "рд╕реНрдореЛрдХ"
- descr attr = fromMaybe "?" ( рд▓реБрдХ рдПрдЯрд░ рдореИрди)
- - рд╕рдорд╛рдзрд╛рди рдХрд╛ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡:
- descrSolution sol = concat [descrMan man ++ + \ n " | рдЖрджрдореА тЖР рд╕реЛрд▓]