{"id":206234,"date":"2013-12-16T16:01:03","date_gmt":"2013-12-16T12:01:03","guid":{"rendered":"http:\/\/savepearlharbor.com\/?p=206234"},"modified":"-0001-11-30T00:00:00","modified_gmt":"-0001-11-29T21:00:00","slug":"","status":"publish","type":"post","link":"https:\/\/savepearlharbor.com\/?p=206234","title":{"rendered":"<span class=\"post_title\">\u0417\u0430\u0434\u0430\u0447\u0438 \u043d\u0430 \u0441\u043e\u0431\u0435\u0441\u0435\u0434\u043e\u0432\u0430\u043d\u0438\u044f\u0445 \u0432 \u042f\u043d\u0434\u0435\u043a\u0441\u0435<\/span>"},"content":{"rendered":"<div class=\"content html_format\">   \t\u041e\u0442\u043a\u0440\u044b\u0442\u044b\u0435 \u0432\u0430\u043a\u0430\u043d\u0441\u0438\u0438 \u043d\u0430 \u0434\u043e\u043b\u0436\u043d\u043e\u0441\u0442\u044c \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0430 \u0432 \u042f\u043d\u0434\u0435\u043a\u0441\u0435 \u0435\u0441\u0442\u044c \u0432\u0441\u0435\u0433\u0434\u0430. \u041a\u043e\u043c\u043f\u0430\u043d\u0438\u044f \u0440\u0430\u0437\u0432\u0438\u0432\u0430\u0435\u0442\u0441\u044f \u0438 \u0445\u043e\u0440\u043e\u0448\u0438\u0445 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0441\u0442\u043e\u0432 \u043d\u0435 \u0445\u0432\u0430\u0442\u0430\u0435\u0442 \u043f\u043e\u0441\u0442\u043e\u044f\u043d\u043d\u043e. \u0418 \u043f\u0440\u0435\u0442\u0435\u043d\u0434\u0435\u043d\u0442\u043e\u0432 \u043d\u0430 \u044d\u0442\u0438 \u0434\u043e\u043b\u0436\u043d\u043e\u0441\u0442\u0438 \u0442\u043e\u0436\u0435 \u0445\u043e\u0442\u044c \u043e\u0442\u0431\u0430\u0432\u043b\u044f\u0439. \u0413\u043b\u0430\u0432\u043d\u0430\u044f \u0441\u043b\u043e\u0436\u043d\u043e\u0441\u0442\u044c \u2013 \u043e\u0442\u043e\u0431\u0440\u0430\u0442\u044c \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u043f\u043e\u0434\u0445\u043e\u0434\u044f\u0449\u0438\u0445 \u043a\u0430\u043d\u0434\u0438\u0434\u0430\u0442\u043e\u0432. \u0418 \u0432 \u044d\u0442\u043e\u043c \u043f\u043b\u0430\u043d\u0435 \u042f\u043d\u0434\u0435\u043a\u0441 \u043c\u0430\u043b\u043e \u0447\u0435\u043c \u043e\u0442\u043b\u0438\u0447\u0430\u0435\u0442\u0441\u044f \u043e\u0442 \u0431\u043e\u043b\u044c\u0448\u0438\u043d\u0441\u0442\u0432\u0430 \u043a\u0440\u0443\u043f\u043d\u044b\u0445 IT-\u043a\u043e\u043c\u043f\u0430\u043d\u0438\u0439. \u0422\u0430\u043a \u0447\u0442\u043e \u0431\u0430\u0437\u043e\u0432\u044b\u0435 \u043f\u0440\u0438\u043d\u0446\u0438\u043f\u044b, \u043e\u043f\u0438\u0441\u044b\u0432\u0430\u0435\u043c\u044b\u0435 \u0432 \u044d\u0442\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0435, \u043c\u043e\u0433\u0443\u0442 \u0431\u044b\u0442\u044c \u043f\u0440\u0438\u043c\u0435\u043d\u0438\u043c\u044b \u043d\u0435 \u0442\u043e\u043b\u044c\u043a\u043e \u043a \u042f\u043d\u0434\u0435\u043a\u0441\u0443. <\/p>\n<p>  \u041e\u0434\u043d\u0430\u043a\u043e \u0441\u0442\u043e\u0438\u0442 \u043e\u0433\u043e\u0432\u043e\u0440\u0438\u0442\u044c\u0441\u044f, \u0447\u0442\u043e \u0441\u0442\u0430\u0442\u044c\u044f \u0432\u0441\u0435 \u0436\u0435 \u043f\u0440\u043e \u043f\u043e\u0434\u0431\u043e\u0440 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u043e\u0432. \u0422.\u0435. \u0441\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u043e \u0442\u0435\u0445 \u0432\u043e\u0441\u044c\u043c\u0438\u0434\u0435\u0441\u044f\u0442\u0438 \u043f\u0440\u043e\u0446\u0435\u043d\u0442\u043e\u0432 \u0441\u043e\u0442\u0440\u0443\u0434\u043d\u0438\u043a\u043e\u0432, \u043d\u0430 \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u0434\u0435\u0440\u0436\u0438\u0442\u0441\u044f \u043c\u0430\u0441\u0441\u043e\u0432\u0430\u044f \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0430. \u0427\u0430\u0441\u0442\u043e \u043c\u044b \u043d\u0430\u043d\u0438\u043c\u0430\u0435\u043c \u043b\u044e\u0434\u0435\u0439 \u043d\u0430 \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u044c\u043d\u044b\u0435 \u0432\u0430\u043a\u0430\u043d\u0441\u0438\u0438: \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u043e\u0432 \u0441\u0438\u0441\u0442\u0435\u043c \u043a\u043e\u043c\u043f\u044c\u044e\u0442\u0435\u0440\u043d\u043e\u0433\u043e \u0437\u0440\u0435\u043d\u0438\u044f, \u043b\u0438\u043d\u0433\u0432\u0438\u0441\u0442\u043e\u0432, \u044d\u043a\u0441\u043f\u0435\u0440\u0442\u043e\u0432 \u043f\u043e \u043c\u0430\u0448\u0438\u043d\u043d\u043e\u043c\u0443 \u043e\u0431\u0443\u0447\u0435\u043d\u0438\u044e. \u0412 \u044d\u0442\u043e\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u0444\u043e\u0440\u043c\u0430\u0442 \u0441\u043e\u0431\u0435\u0441\u0435\u0434\u043e\u0432\u0430\u043d\u0438\u044f \u043c\u043e\u0436\u0435\u0442 \u0437\u0430\u043c\u0435\u0442\u043d\u043e \u043e\u0442\u043b\u0438\u0447\u0430\u0442\u044c\u0441\u044f.<\/p>\n<p>  <a href=\"http:\/\/habrahabr.ru\/company\/yandex\/blog\/206234\/\"><img decoding=\"async\" src=\"http:\/\/habr.habrastorage.org\/post_images\/8db\/d9b\/c69\/8dbd9bc695f98c2ac16fe0755f4c07f0.jpg\" alt=\"image\"\/><\/a><br \/>  <a name=\"habracut\"><\/a>  <\/p>\n<h4>\u0427\u0435\u0433\u043e \u0436\u0434\u0430\u0442\u044c \u043d\u0430 \u0441\u043e\u0431\u0435\u0441\u0435\u0434\u043e\u0432\u0430\u043d\u0438\u0438<\/h4>\n<p>  \u0420\u0435\u0437\u044e\u043c\u0435 \u0438 \u00ab\u043e\u043f\u044b\u0442\u00bb \u0440\u0430\u0431\u043e\u0442\u044b \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u0441\u043e\u0441\u0442\u0430\u0432\u0438\u0442\u044c \u043f\u0435\u0440\u0432\u043e\u0435 \u0432\u043f\u0435\u0447\u0430\u0442\u043b\u0435\u043d\u0438\u0435 \u043e \u043a\u0430\u043d\u0434\u0438\u0434\u0430\u0442\u0435, \u043e\u0434\u043d\u0430\u043a\u043e \u0435\u0441\u0442\u044c \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u0430\u044f \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0430: \u0443\u043c\u0435\u043d\u0438\u0435 \u0445\u043e\u0440\u043e\u0448\u043e \u043f\u0438\u0441\u0430\u0442\u044c \u0440\u0435\u0437\u044e\u043c\u0435 \u0438 \u0443\u043c\u0435\u043d\u0438\u0435 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043d\u0435 \u0441\u0438\u043b\u044c\u043d\u043e \u043a\u043e\u0440\u0440\u0435\u043b\u0438\u0440\u0443\u044e\u0442. \u0422\u0430\u043a \u0447\u0442\u043e \u0435\u0441\u0442\u044c \u043e\u0433\u0440\u043e\u043c\u043d\u043e\u0435 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u043b\u044e\u0434\u0435\u0439, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043f\u0440\u0438 \u043e\u0442\u043b\u0438\u0447\u043d\u043e\u043c \u0440\u0435\u0437\u044e\u043c\u0435 \u0438 \u043e\u043f\u044b\u0442\u0435 \u043d\u0435 \u043c\u043e\u0433\u0443\u0442 \u043d\u0430\u043f\u0438\u0441\u0430\u0442\u044c \u0440\u0430\u0431\u043e\u0442\u0430\u044e\u0449\u0438\u0439 \u043a\u043e\u0434, \u0438 \u0435\u0441\u0442\u044c \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u043e\u0435 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u043a\u0430\u043d\u0434\u0438\u0434\u0430\u0442\u043e\u0432, \u0440\u0435\u0437\u044e\u043c\u0435 \u0443 \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u2013 \u043d\u0430\u0432\u0435\u0432\u0430\u0435\u0442 \u0442\u043e\u0441\u043a\u0443, \u0430 \u0441\u0430\u043c\u0438 \u043b\u044e\u0434\u0438 \u043f\u0440\u0438 \u044d\u0442\u043e\u043c \u0441\u0442\u043e\u044f\u0449\u0438\u0435 \u043f\u0440\u043e\u0444\u0435\u0441\u0441\u0438\u043e\u043d\u0430\u043b\u044b. \u041f\u043e\u044d\u0442\u043e\u043c\u0443, \u0447\u0442\u043e\u0431\u044b \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u0445\u043e\u0440\u043e\u0448\u043e \u043e\u0446\u0435\u043d\u0438\u0442\u044c \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u0438 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0430, \u0431\u0435\u0437 \u043f\u0440\u044f\u043c\u043e\u0433\u043e \u043e\u0431\u0449\u0435\u043d\u0438\u044f \u043d\u0435 \u043e\u0431\u043e\u0439\u0442\u0438\u0441\u044c. <\/p>\n<p>  \u0418\u043d\u043e\u0433\u0434\u0430, \u0447\u0442\u043e\u0431\u044b \u043f\u043e\u043d\u044f\u0442\u044c, \u0447\u0442\u043e \u043a\u0430\u043d\u0434\u0438\u0434\u0430\u0442 \u043d\u0435 \u043f\u043e\u0434\u0445\u043e\u0434\u0438\u0442, \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u0434\u0435\u0441\u044f\u0442\u0438 \u043c\u0438\u043d\u0443\u0442: \u0435\u0441\u043b\u0438 \u0447\u0435\u043b\u043e\u0432\u0435\u043a\u0430 \u0441\u0442\u0430\u0432\u044f\u0442 \u0432 \u0442\u0443\u043f\u0438\u043a \u0431\u0430\u0437\u043e\u0432\u044b\u0435 \u0432\u043e\u043f\u0440\u043e\u0441\u044b \u043e \u0441\u0438\u043d\u0442\u0430\u043a\u0441\u0438\u0441\u0435 \u044f\u0437\u044b\u043a\u0430, \u043d\u0430 \u043a\u043e\u0442\u043e\u0440\u043e\u043c \u043e\u043d \u043f\u043e \u0435\u0433\u043e \u0443\u0442\u0432\u0435\u0440\u0436\u0434\u0435\u043d\u0438\u044e \u043f\u0438\u0441\u0430\u043b \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u043b\u0435\u0442, \u0434\u0430\u043b\u044c\u043d\u0435\u0439\u0448\u0438\u0439 \u0440\u0430\u0437\u0433\u043e\u0432\u043e\u0440 \u0441\u043c\u044b\u0441\u043b\u0430 \u043d\u0435 \u0438\u043c\u0435\u0435\u0442. \u0418\u043c\u0435\u043d\u043d\u043e \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u0447\u0430\u0449\u0435 \u0432\u0441\u0435\u0433\u043e \u043f\u0435\u0440\u0432\u044b\u0439 \u044d\u0442\u0430\u043f \u0441\u0435\u0440\u0438\u0438 \u0441\u043e\u0431\u0435\u0441\u0435\u0434\u043e\u0432\u0430\u043d\u0438\u0439 \u0432 \u042f\u043d\u0434\u0435\u043a\u0441\u0435 \u043e\u0431\u044b\u0447\u043d\u043e \u043f\u0440\u043e\u0432\u043e\u0434\u0438\u0442\u0441\u044f \u0447\u0435\u0440\u0435\u0437 Skype. \u0412\u0441\u0435-\u0442\u0430\u043a\u0438 \u043e\u0442\u043a\u0430\u0437\u0430\u0442\u044c \u0447\u0435\u043b\u043e\u0432\u0435\u043a\u0443, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0434\u043e\u0431\u0438\u0440\u0430\u043b\u0441\u044f \u0434\u043e \u043e\u0444\u0438\u0441\u0430 \u0447\u0430\u0441 \u043f\u043e \u043f\u0440\u043e\u0431\u043a\u0430\u043c \u043d\u0430 \u043f\u044f\u0442\u043e\u0439 \u043c\u0438\u043d\u0443\u0442\u0435 \u0441\u043e\u0431\u0435\u0441\u0435\u0434\u043e\u0432\u0430\u043d\u0438\u044f \u2013 \u043d\u0435\u0445\u043e\u0440\u043e\u0448\u043e \u0441 \u0442\u043e\u0447\u043a\u0438 \u0437\u0440\u0435\u043d\u0438\u044f \u0432\u0435\u0436\u043b\u0438\u0432\u043e\u0441\u0442\u0438, \u0430 \u0435\u0449\u0435 2 \u0447\u0430\u0441\u0430 \u0435\u0433\u043e \u043c\u0443\u0447\u0430\u0442\u044c, \u0437\u043d\u0430\u044f \u0447\u0442\u043e, \u0441\u043a\u043e\u0440\u0435\u0435 \u0432\u0441\u0435\u0433\u043e, \u043d\u0435 \u0432\u043e\u0437\u044c\u043c\u0435\u0448\u044c \u2013 \u0441 \u0442\u043e\u0447\u043a\u0438 \u0437\u0440\u0435\u043d\u0438\u044f \u044d\u0442\u0438\u043a\u0438. \u0421\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0435\u043d\u043d\u043e, \u0443\u0434\u0430\u043b\u0435\u043d\u043d\u043e\u0435 \u0438\u043d\u0442\u0435\u0440\u0432\u044c\u044e \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u0441\u044d\u043a\u043e\u043d\u043e\u043c\u0438\u0442\u044c \u0432\u0440\u0435\u043c\u044f \u0438 \u043d\u0435\u0440\u0432\u044b \u043e\u0431\u0435\u0438\u043c \u0441\u0442\u043e\u0440\u043e\u043d\u0430\u043c.<\/p>\n<p>  \u0421 \u0432\u043e\u043f\u0440\u043e\u0441\u0430\u043c\u0438 \u043e \u0441\u0438\u043d\u0442\u0430\u043a\u0441\u0438\u0441\u0435 \u0433\u043b\u0430\u0432\u043d\u043e\u0435 \u2013 \u043d\u0435 \u043f\u0435\u0440\u0435\u0441\u0442\u0430\u0440\u0430\u0442\u044c\u0441\u044f, \u043d\u0430\u043c\u0435\u0440\u0435\u043d\u043d\u043e \u043f\u044b\u0442\u0430\u044f\u0441\u044c \u043f\u043e\u0434\u043b\u043e\u0432\u0438\u0442\u044c \u043d\u0430 \u043a\u0430\u043a\u043e\u043c-\u043d\u0438\u0431\u0443\u0434\u044c \u043c\u0430\u043b\u043e\u0438\u0437\u0432\u0435\u0441\u0442\u043d\u043e\u043c \u0444\u0430\u043a\u0442\u0435. \u0415\u0441\u0442\u044c \u044f\u0437\u044b\u043a\u0438 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0441 \u043e\u0447\u0435\u043d\u044c \u0434\u043b\u0438\u043d\u043d\u043e\u0439 \u0438 \u043d\u0435\u043f\u0440\u043e\u0441\u0442\u043e\u0439 \u0438\u0441\u0442\u043e\u0440\u0438\u0435\u0439, \u0443 \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u043f\u0440\u0438\u043c\u0435\u0440\u043d\u043e \u043f\u043e\u043b\u043e\u0432\u0438\u043d\u0430 \u0438\u0445 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u0435\u0439 \u2013 \u044d\u0442\u043e \u043a\u0430\u043a\u0438\u0435-\u0442\u043e \u0438\u0441\u0442\u043e\u0440\u0438\u0447\u0435\u0441\u043a\u0438 \u0441\u043b\u043e\u0436\u0438\u0432\u0448\u0438\u0435\u0441\u044f \u0441\u043b\u043e\u0436\u043d\u044b\u0435 \u0438 \u043d\u0435\u043d\u0443\u0436\u043d\u044b\u0435 \u043a\u043e\u0441\u0442\u044b\u043b\u0438. \u041a \u0442\u0430\u043a\u0438\u043c, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u043e\u0442\u043d\u043e\u0441\u0438\u0442\u0441\u044f \u0438 \u043d\u0430\u0448 \u043b\u044e\u0431\u0438\u043c\u044b\u0439 C++. \u0415\u0441\u043b\u0438 \u0432\u044b \u043d\u0435 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0442\u043e\u0440\u0430 C++, \u043f\u043e\u0447\u0442\u0438 \u0432\u0441\u0435\u0433\u0434\u0430 \u043c\u043e\u0436\u043d\u043e \u043d\u0430\u0439\u0442\u0438 \u0447\u0442\u043e-\u0442\u043e, \u0447\u0435\u0433\u043e \u0432\u044b \u0432 \u044f\u0437\u044b\u043a\u0435 \u043d\u0435 \u0437\u043d\u0430\u0435\u0442\u0435. \u041f\u0440\u043e\u0441\u0442\u043e \u043d\u0435\u043f\u043e\u043d\u044f\u0442\u043d\u043e, \u0437\u0430\u0447\u0435\u043c \u044d\u0442\u043e \u043c\u043e\u0433\u043b\u043e \u0431\u044b \u0432\u0430\u043c \u043f\u043e\u043d\u0430\u0434\u043e\u0431\u0438\u0442\u044c\u0441\u044f.<\/p>\n<p>  \u041c\u044b \u043e\u0431\u044b\u0447\u043d\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c \u0437\u0430\u0440\u0430\u043d\u0435\u0435 \u043f\u043e\u0434\u0433\u043e\u0442\u043e\u0432\u043b\u0435\u043d\u043d\u044b\u0435 \u0442\u0435\u0441\u0442\u044b \u043f\u043e \u044f\u0437\u044b\u043a\u0443, \u0432 \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0432\u0445\u043e\u0434\u0438\u0442 10-15 \u0432\u043e\u043f\u0440\u043e\u0441\u043e\u0432 \u043d\u0430 \u0437\u043d\u0430\u043d\u0438\u0435 \u0441\u0438\u043d\u0442\u0430\u043a\u0441\u0438\u0441\u0430, \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u0435\u0439 \u044f\u0437\u044b\u043a\u0430, \u043f\u0440\u0438\u043d\u0446\u0438\u043f\u043e\u0432 \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u043f\u0430\u043c\u044f\u0442\u044c\u044e \u0438 \u0442.\u0434. \u0427\u0430\u0449\u0435 \u0432\u0441\u0435\u0433\u043e \u0434\u043b\u044f \u0443\u0441\u043f\u0435\u0448\u043d\u043e\u0433\u043e \u043f\u0440\u043e\u0445\u043e\u0436\u0434\u0435\u043d\u0438\u044f \u043e\u0442\u0432\u0435\u0442\u043e\u0432 \u043d\u0430 \u0432\u0441\u0435 \u0432\u043e\u043f\u0440\u043e\u0441\u044b \u043d\u0435 \u0442\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044f, \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e 70-80 \u043f\u0440\u043e\u0446\u0435\u043d\u0442\u043e\u0432. \u0414\u0430 \u0438 \u0432\u043e\u043e\u0431\u0449\u0435 \u0441\u0430\u043c \u0442\u0435\u0441\u0442 \u2013 \u044d\u0442\u043e \u0441\u043a\u043e\u0440\u0435\u0435 \u043d\u0435 \u0442\u0435\u0441\u0442, \u0430 \u043d\u0430\u0431\u043e\u0440 \u0442\u0435\u043c, \u043d\u0430 \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043d\u0443\u0436\u043d\u043e \u043f\u043e\u0433\u043e\u0432\u043e\u0440\u0438\u0442\u044c, \u043d\u0430\u0441 \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u0443\u0435\u0442 \u0441\u043a\u043e\u0440\u0435\u0435 \u043d\u0435 \u0441\u0430\u043c \u043e\u0442\u0432\u0435\u0442 (\u043c\u044b \u0435\u0433\u043e \u0438 \u0442\u0430\u043a \u0437\u043d\u0430\u0435\u043c), \u0430 \u043f\u043e\u0447\u0435\u043c\u0443 \u043a\u0430\u043d\u0434\u0438\u0434\u0430\u0442 \u0435\u0433\u043e \u0432\u044b\u0431\u0440\u0430\u043b.<\/p>\n<p>  \u0412\u0430\u0436\u043d\u044b\u0439 \u043c\u043e\u043c\u0435\u043d\u0442 \u2013 \u0437\u043d\u0430\u043d\u0438\u0435 \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c\u043e\u0432. \u0417\u0434\u0435\u0441\u044c \u0442\u043e\u0436\u0435 \u043d\u0443\u0436\u043d\u043e \u043d\u0435 \u043f\u0435\u0440\u0435\u0441\u0442\u0430\u0440\u0430\u0442\u044c\u0441\u044f, \u043d\u0430\u0432\u0435\u0440\u043d\u044f\u043a\u0430 \u043e\u0447\u0435\u043d\u044c \u043c\u0430\u043b\u043e \u0438\u0437 \u043b\u044e\u0434\u0435\u0439, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0441\u0430\u043c\u0438 \u043f\u0440\u043e\u0432\u043e\u0434\u044f\u0442 \u0441\u043e\u0431\u0435\u0441\u0435\u0434\u043e\u0432\u0430\u043d\u0438\u044f, \u043d\u0430\u0438\u0437\u0443\u0441\u0442\u044c \u043f\u043e\u043c\u043d\u044f\u0442 \u043a\u0430\u043a \u0432\u0440\u0430\u0449\u0430\u0442\u044c \u043a\u0440\u0430\u0441\u043d\u043e-\u0447\u0435\u0440\u043d\u043e\u0435 \u0434\u0435\u0440\u0435\u0432\u043e, \u043d\u043e \u0437\u043d\u0430\u0442\u044c \u043a\u0430\u043a \u0443\u0441\u0442\u0440\u043e\u0435\u043d\u044b \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u044b \u0432\u0430\u0448\u0435\u0433\u043e \u043b\u044e\u0431\u0438\u043c\u043e\u0433\u043e \u044f\u0437\u044b\u043a\u0430 \u0434\u043b\u044f \u0442\u043e\u0433\u043e \u0447\u0442\u043e\u0431\u044b \u0437\u043d\u0430\u0442\u044c \u0438\u0445 \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u0438\u044f \u0438 \u0443\u043c\u0435\u0442\u044c \u0432 \u0432\u044b\u0431\u0438\u0440\u0430\u0442\u044c \u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u044b\u0435 \u2013 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e. \u041d\u0430 \u0441\u0430\u043c\u043e\u043c \u0434\u0435\u043b\u0435 \u0447\u0438\u0442\u0430\u0442\u044c \u041a\u043d\u0443\u0442\u0430 \u0434\u043b\u044f \u0442\u043e\u0433\u043e, \u0447\u0442\u043e\u0431\u044b \u0438\u0437\u0443\u0447\u0438\u0442\u044c \u044d\u0442\u0443 \u043e\u0431\u043b\u0430\u0441\u0442\u044c \u043d\u0435 \u043d\u0443\u0436\u043d\u043e, \u043f\u043e \u0441\u0443\u0442\u0438, \u043a \u044d\u0442\u043e\u043c\u0443 \u044d\u0442\u0430\u043f\u0443 \u043c\u043e\u0436\u043d\u043e \u043f\u043e\u0434\u0433\u043e\u0442\u043e\u0432\u0438\u0442\u044c\u0441\u044f, \u0432\u0434\u0443\u043c\u0447\u0438\u0432\u043e \u0438\u0437\u0443\u0447\u0438\u0432 \u043f\u0440\u0438\u043c\u0435\u0440\u043d\u043e 30 \u0441\u0442\u0440\u0430\u043d\u0438\u0446 \u0432 \u0412\u0438\u043a\u0438\u043f\u0435\u0434\u0438\u0438.<\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">\u0421\u043f\u0438\u0441\u043e\u043a \u0441\u0442\u0430\u0442\u0435\u0439<\/b><\/p>\n<div class=\"spoiler_text\"><a href=\"http:\/\/en.wikipedia.org\/wiki\/Data_structures\">en.wikipedia.org\/wiki\/Data_structures<\/a>   <\/p>\n<ul>\n<li><a href=\"http:\/\/en.wikipedia.org\/wiki\/Dynamic_array\">en.wikipedia.org\/wiki\/Dynamic_array<\/a><\/li>\n<li> <a href=\"http:\/\/en.wikipedia.org\/wiki\/Hash_table\">en.wikipedia.org\/wiki\/Hash_table<\/a><\/li>\n<li> <a href=\"http:\/\/en.wikipedia.org\/wiki\/B-tree\">en.wikipedia.org\/wiki\/B-tree<\/a><\/li>\n<li> <a href=\"http:\/\/en.wikipedia.org\/wiki\/Rb-tree\">en.wikipedia.org\/wiki\/Rb-tree<\/a><\/li>\n<li> <a href=\"http:\/\/en.wikipedia.org\/wiki\/Self-balancing_binary_search_tree\">en.wikipedia.org\/wiki\/Self-balancing_binary_search_tree<\/a><\/li>\n<li> <a href=\"http:\/\/en.wikipedia.org\/wiki\/Heap_(data_structure)\">en.wikipedia.org\/wiki\/Heap_(data_structure)<\/a><\/li>\n<li> <a href=\"http:\/\/en.wikipedia.org\/wiki\/Trie\">en.wikipedia.org\/wiki\/Trie<\/a><\/li>\n<li> <a href=\"http:\/\/en.wikipedia.org\/wiki\/Skip_list\">en.wikipedia.org\/wiki\/Skip_list<\/a><\/li>\n<li> <a href=\"http:\/\/en.wikipedia.org\/wiki\/Graph_(abstract_data_type)\">en.wikipedia.org\/wiki\/Graph_(abstract_data_type)<\/a><\/li>\n<\/ul>\n<p>  <a href=\"http:\/\/en.wikipedia.org\/wiki\/Sorting_algorithm\">en.wikipedia.org\/wiki\/Sorting_algorithm<\/a>   <\/p>\n<ul>\n<li><a href=\"http:\/\/en.wikipedia.org\/wiki\/Heapsort\">en.wikipedia.org\/wiki\/Heapsort<\/a><\/li>\n<li> <a href=\"http:\/\/en.wikipedia.org\/wiki\/Quicksort\">en.wikipedia.org\/wiki\/Quicksort<\/a><\/li>\n<li> <a href=\"http:\/\/en.wikipedia.org\/wiki\/Radix_sort\">en.wikipedia.org\/wiki\/Radix_sort<\/a><\/li>\n<\/ul>\n<p>  <\/div>\n<\/div>\n<p>  \u041f\u043e\u043c\u0438\u043c\u043e \u043f\u0440\u043e\u0447\u0442\u0435\u043d\u0438\u044f \u0441\u0442\u0430\u0442\u0435\u0439 \u0438\u0437 \u0441\u043f\u0438\u0441\u043a\u0430, \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u043f\u0440\u043e\u0439\u0442\u0438\u0441\u044c \u043f\u043e \u0432\u0441\u0435\u043c \u0440\u0435\u043b\u0435\u0432\u0430\u043d\u0442\u043d\u044b\u043c \u0441\u0441\u044b\u043b\u043a\u0430\u043c \u0432 \u043d\u0438\u0445, \u0442\u0430\u043a \u0436\u0435 \u0432\u0434\u0443\u043c\u0447\u0438\u0432\u043e \u0438\u0445 \u0438\u0437\u0443\u0447\u0438\u0442\u044c, \u0430 \u043f\u0440\u0438 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e\u0441\u0442\u0438 \u043f\u043e\u0439\u0442\u0438 \u0435\u0449\u0435 \u0433\u043b\u0443\u0431\u0436\u0435.<\/p>\n<h4>\u041f\u0438\u0448\u0435\u043c \u043a\u043e\u0434<\/h4>\n<p>  \u041d\u043e \u0433\u043b\u0430\u0432\u043d\u043e\u0435 \u0434\u043b\u044f \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0430 \u2013 \u044d\u0442\u043e, \u043a\u043e\u043d\u0435\u0447\u043d\u043e, \u0443\u043c\u0435\u043d\u0438\u0435 \u043f\u0438\u0441\u0430\u0442\u044c \u0445\u043e\u0440\u043e\u0448\u0438\u0439 \u043a\u043e\u0434. \u0418 \u043f\u0440\u0438\u043d\u0438\u043c\u0430\u0442\u044c \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0441\u0442\u0430 \u043d\u0430 \u0440\u0430\u0431\u043e\u0442\u0443 \u0442\u043e\u043b\u044c\u043a\u043e \u043d\u0430 \u043e\u0441\u043d\u043e\u0432\u0435 \u0435\u0433\u043e \u0442\u0435\u043e\u0440\u0435\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0445 \u0437\u043d\u0430\u043d\u0438\u0439, \u043c\u044f\u0433\u043a\u043e \u0433\u043e\u0432\u043e\u0440\u044f, \u0441\u0442\u0440\u0430\u043d\u043d\u043e. \u0422\u0443\u0442 \u043c\u043e\u0436\u043d\u043e \u0432\u0441\u043f\u043e\u043c\u043d\u0438\u0442\u044c \u043e\u0442\u0440\u044b\u0432\u043e\u043a \u0438\u0437 \u043a\u043d\u0438\u0433\u0438 \u0422\u043e\u043c\u0430 \u0434\u0435 \u041c\u0430\u0440\u043a\u043e \u0438 \u0422\u0438\u043c\u043e\u0442\u0438 \u041b\u0438\u0441\u0442\u0435\u0440\u0430 \u00ab\u0427\u0435\u043b\u043e\u0432\u0435\u0447\u0435\u0441\u043a\u0438\u0439 \u0444\u0430\u043a\u0442\u043e\u0440\u00bb:  <\/p>\n<blockquote><p><i>\u041c\u0435\u043d\u0435\u0434\u0436\u0435\u0440: \u00ab\u041a\u0430\u043a \u0434\u0430\u0432\u043d\u043e \u0432\u044b \u0436\u043e\u043d\u0433\u043b\u0438\u0440\u0443\u0435\u0442\u0435?\u00bb <br \/>  \u041a\u0430\u043d\u0434\u0438\u0434\u0430\u0442: \u00ab\u041d\u0443, \u043f\u0440\u0438\u043c\u0435\u0440\u043d\u043e \u0448\u0435\u0441\u0442\u044c \u043b\u0435\u0442\u00bb.<br \/>  \u041c\u0435\u043d\u0435\u0434\u0436\u0435\u0440: \u00ab\u0422\u0440\u0435\u043c\u044f, \u0447\u0435\u0442\u044b\u0440\u044c\u043c\u044f, \u043f\u044f\u0442\u044c\u044e \u0448\u0430\u0440\u0430\u043c\u0438 \u0443\u043c\u0435\u0435\u0442\u0435 \u0436\u043e\u043d\u0433\u043b\u0438\u0440\u043e\u0432\u0430\u0442\u044c?\u00bb <br \/>  \u041a\u0430\u043d\u0434\u0438\u0434\u0430\u0442: \u00ab\u0414\u0430, \u0434\u0430 \u0438 \u0434\u0430\u00bb.<br \/>  \u041c\u0435\u043d\u0435\u0434\u0436\u0435\u0440: \u00ab\u0420\u0430\u0431\u043e\u0442\u0430\u0435\u0442\u0435 \u0441 \u0433\u043e\u0440\u044f\u0449\u0438\u043c\u0438 \u043f\u0440\u0435\u0434\u043c\u0435\u0442\u0430\u043c\u0438?\u00bb <br \/>  \u041a\u0430\u043d\u0434\u0438\u0434\u0430\u0442: \u00ab\u041a\u043e\u043d\u0435\u0447\u043d\u043e\u00bb.<br \/>  \u041c\u0435\u043d\u0435\u0434\u0436\u0435\u0440: \u00ab\u2026\u043d\u043e\u0436\u0430\u043c\u0438, \u0442\u043e\u043f\u043e\u0440\u0430\u043c\u0438, \u043e\u0442\u043a\u0440\u044b\u0442\u044b\u043c\u0438 \u043a\u043e\u0440\u043e\u0431\u043a\u0430\u043c\u0438 \u0441 \u0441\u0438\u0433\u0430\u0440\u0430\u043c\u0438, \u043c\u044f\u0433\u043a\u0438\u043c\u0438 \u0448\u0438\u0440\u043e\u043a\u043e\u043f\u043e\u043b\u044b\u043c\u0438 \u0448\u043b\u044f\u043f\u0430\u043c\u0438?\u00bb <br \/>  \u041a\u0430\u043d\u0434\u0438\u0434\u0430\u0442: \u00ab\u041c\u043d\u0435 \u0432\u0441\u0451 \u0440\u0430\u0432\u043d\u043e, \u0447\u0435\u043c \u0436\u043e\u043d\u0433\u043b\u0438\u0440\u043e\u0432\u0430\u0442\u044c\u00bb.<br \/>  \u041c\u0435\u043d\u0435\u0434\u0436\u0435\u0440: \u00ab\u0410 \u043a\u0430\u043a\u0443\u044e-\u043d\u0438\u0431\u0443\u0434\u044c \u0432\u0435\u0441\u0451\u043b\u0443\u044e \u0441\u043a\u043e\u0440\u043e\u0433\u043e\u0432\u043e\u0440\u043a\u0443 \u0437\u043d\u0430\u0435\u0442\u0435?\u00bb <br \/>  \u041a\u0430\u043d\u0434\u0438\u0434\u0430\u0442: \u00ab\u041e\u043d\u0430\u0431\u0435\u0441\u043f\u043e\u0434\u043e\u0431\u043d\u0430\u00bb.<br \/>  \u041c\u0435\u043d\u0435\u0434\u0436\u0435\u0440: \u00ab\u0427\u0442\u043e \u0436, \u043c\u043d\u0435 \u043d\u0440\u0430\u0432\u0438\u0442\u0441\u044f. \u0414\u0443\u043c\u0430\u044e, \u043c\u044b \u0432\u0430\u0441 \u0432\u043e\u0437\u044c\u043c\u0451\u043c\u00bb. <br \/>  \u041a\u0430\u043d\u0434\u0438\u0434\u0430\u0442: \u00ab\u0410\u0430\u0430\u0430\u2026 \u041d\u0435 \u0445\u043e\u0442\u0438\u0442\u0435 \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c, \u043a\u0430\u043a \u044f \u0436\u043e\u043d\u0433\u043b\u0438\u0440\u0443\u044e?\u00bb <br \/>  \u041c\u0435\u043d\u0435\u0434\u0436\u0435\u0440: \u00ab\u0425\u043c, \u043c\u043d\u0435 \u043a\u0430\u043a-\u0442\u043e \u044d\u0442\u043e \u043d\u0435 \u043f\u0440\u0438\u0448\u043b\u043e \u0432 \u0433\u043e\u043b\u043e\u0432\u0443\u00bb.<\/i><\/p><\/blockquote>\n<p>  \u041f\u043e\u044d\u0442\u043e\u043c\u0443, \u043d\u0430 \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0435\u043c \u044d\u0442\u0430\u043f\u0435 \u043a\u0430\u043d\u0434\u0438\u0434\u0430\u0442\u0443 \u043f\u0440\u0435\u0434\u043b\u0430\u0433\u0430\u0435\u0442\u0441\u044f \u0432\u044b\u043f\u043e\u043b\u043d\u0438\u0442\u044c \u043f\u0440\u0430\u043a\u0442\u0438\u0447\u0435\u0441\u043a\u043e\u0435 \u0437\u0430\u0434\u0430\u043d\u0438\u0435. <\/p>\n<p>  \u0421\u0435\u0439\u0447\u0430\u0441 \u043c\u044b \u0432\u0430\u043c \u043f\u0440\u0438\u0432\u0435\u0434\u0435\u043c \u0440\u0430\u0437\u0431\u043e\u0440 \u0437\u0430\u0434\u0430\u0447\u0438 \u043f\u043e\u0434\u043e\u0431\u043d\u043e\u0439 \u0442\u0435\u043c, \u0447\u0442\u043e \u043c\u043e\u0433\u0443\u0442 \u043f\u043e\u043f\u0430\u0441\u0442\u044c\u0441\u044f \u0432\u0430\u043c \u043d\u0430 \u0441\u043e\u0431\u0435\u0441\u0435\u0434\u043e\u0432\u0430\u043d\u0438\u0438. \u041c\u044b \u043f\u0440\u0438\u0434\u0443\u043c\u0430\u043b\u0438 \u0435\u0435 \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u044c\u043d\u043e \u0434\u043b\u044f \u0434\u0435\u043c\u043e\u043d\u0441\u0442\u0440\u0430\u0446\u0438\u0438 \u0441\u0440\u0435\u0434\u043d\u0435\u0433\u043e \u0443\u0440\u043e\u0432\u043d\u044f \u0441\u043b\u043e\u0436\u043d\u043e\u0441\u0442\u0438. <\/p>\n<p>  \u041f\u043e \u0443\u0441\u043b\u043e\u0432\u0438\u044e \u0437\u0430\u0434\u0430\u0447\u0438 \u0443 \u0432\u0430\u0441 \u0435\u0441\u0442\u044c \u0444\u043e\u0440\u043c\u0443\u043b\u0430 \u0441 \u0446\u0438\u0444\u0440\u0430\u043c\u0438, \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u044f\u043c\u0438 +-*\/ \u0438 \u0441\u043a\u043e\u0431\u043a\u0430\u043c\u0438. \u041d\u0443\u0436\u043d\u043e \u043d\u0430\u043f\u0438\u0441\u0430\u0442\u044c \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0443, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u0435\u0435 \u0432\u044b\u0447\u0438\u0441\u043b\u044f\u0435\u0442. \u0424\u043e\u0440\u043c\u0443\u043b\u0430 \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u0431\u043e\u043b\u044c\u0448\u043e\u0439. \u0425\u043e\u0447\u0435\u0442\u0441\u044f, \u0447\u0442\u043e\u0431\u044b \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0443 \u043c\u043e\u0436\u043d\u043e \u0431\u044b\u043b\u043e \u043b\u0435\u0433\u043a\u043e \u0434\u043e\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u0442\u044c, \u0432\u0432\u043e\u0434\u044f \u0444\u0443\u043d\u043a\u0446\u0438\u0438, \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b \u0438 \u0442.\u0434.<\/p>\n<p>  \u041f\u0435\u0440\u0435\u0434 \u0442\u0435\u043c \u043a\u0430\u043a \u043e\u0441\u0442\u0430\u0432\u0438\u0442\u044c \u043a\u0430\u043d\u0434\u0438\u0434\u0430\u0442\u0430 \u043e\u0434\u0438\u043d \u043d\u0430 \u043e\u0434\u0438\u043d \u0441 \u0437\u0430\u0434\u0430\u0447\u0435\u0439, \u043c\u044b \u043e\u0431\u044b\u0447\u043d\u043e \u0441\u043f\u0440\u0430\u0448\u0438\u0432\u0430\u0435\u043c, \u043a\u0430\u043a \u043e\u043d \u0441\u043e\u0431\u0438\u0440\u0430\u0435\u0442\u0441\u044f \u0435\u0435 \u0440\u0435\u0448\u0430\u0442\u044c. \u041c\u0430\u043b\u043e \u043f\u0440\u0438\u044f\u0442\u043d\u043e\u0433\u043e \u0447\u0435\u0440\u0435\u0437 2 \u0447\u0430\u0441\u0430 \u043e\u0431\u043d\u0430\u0440\u0443\u0436\u0438\u0442\u044c, \u0447\u0442\u043e \u0447\u0435\u043b\u043e\u0432\u0435\u043a \u043f\u043e\u043d\u044f\u0442\u0438\u044f \u043d\u0435 \u0438\u043c\u0435\u0435\u0442 \u0441 \u043a\u0430\u043a\u043e\u0439 \u0441\u0442\u043e\u0440\u043e\u043d\u044b \u043a \u0437\u0430\u0434\u0430\u0447\u0435 \u043f\u0440\u0438\u0441\u0442\u0443\u043f\u0438\u0442\u044c. \u0412 \u043c\u043e\u043c\u0435\u043d\u0442 \u043e\u0431\u0441\u0443\u0436\u0434\u0435\u043d\u0438\u044f \u043c\u043e\u0436\u043d\u043e \u043d\u0435\u043c\u043d\u043e\u0433\u043e \u043d\u0430\u043f\u0440\u0430\u0432\u0438\u0442\u044c \u0438 \u043f\u043e\u0434\u0441\u043a\u0430\u0437\u0430\u0442\u044c \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c. <\/p>\n<p>  \u0414\u043b\u044f \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0438 \u0443\u0440\u043e\u0432\u043d\u044f \u0441\u043b\u043e\u0436\u043d\u043e\u0441\u0442\u0438 \u0437\u0430\u0434\u0430\u0447\u0438 \u043c\u044b \u0434\u0430\u043b\u0438 \u0435\u0435 \u0434\u0432\u0443\u043c \u043d\u0430\u0448\u0438\u043c \u0441\u043e\u0442\u0440\u0443\u0434\u043d\u0438\u043a\u0430\u043c: \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0441\u0442\u0443 \u0438 \u043c\u0435\u043d\u0435\u0434\u0436\u0435\u0440\u0443, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0440\u0430\u043d\u044c\u0448\u0435 \u0431\u044b\u043b \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0441\u0442\u043e\u043c, \u043d\u043e \u043d\u0435 \u043f\u0440\u0430\u043a\u0442\u0438\u043a\u0443\u0435\u0442 \u0443\u0436\u0435 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u043b\u0435\u0442. \u041e\u0431\u043e\u0438\u0445 \u043c\u044b \u043f\u043e\u043f\u0440\u043e\u0441\u0438\u043b\u0438 \u043d\u0435 \u043e\u0441\u0432\u0435\u0436\u0430\u0442\u044c \u0442\u0435\u043e\u0440\u0438\u044e \u0438 \u043f\u0438\u0441\u0430\u0442\u044c \u043f\u043e \u043f\u0430\u043c\u044f\u0442\u0438. \u041f\u0435\u0440\u0432\u044b\u0439 \u0441\u043f\u0440\u0430\u0432\u0438\u043b\u0441\u044f \u0441 \u0437\u0430\u0434\u0430\u0447\u0435\u0439 \u0437\u0430 \u0434\u0432\u0430 \u0447\u0430\u0441\u0430, \u0430 \u0443 \u0432\u0442\u043e\u0440\u043e\u0433\u043e \u043d\u0430 \u0440\u0435\u0448\u0435\u043d\u0438\u0435 \u0443\u0448\u043b\u043e \u0447\u0435\u0442\u044b\u0440\u0435 \u0447\u0430\u0441\u0430. \u0417\u0430\u0434\u0430\u0447\u0430 \u043f\u043e\u043b\u0443\u0447\u0438\u043b\u0430\u0441\u044c \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0441\u043b\u043e\u0436\u043d\u0435\u0435, \u0447\u0435\u043c \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u044b\u0435, \u043d\u0430 \u0440\u0435\u0448\u0435\u043d\u0438\u0435 \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u043e\u0431\u044b\u0447\u043d\u043e \u0443\u0445\u043e\u0434\u0438\u0442 \u043e\u0442 \u043f\u043e\u043b\u0443\u0447\u0430\u0441\u0430 \u0434\u043e \u0434\u0432\u0443\u0445. \u0414\u043b\u044f \u043f\u0440\u0438\u043c\u0435\u0440\u0430 \u0440\u0430\u0437\u0431\u0435\u0440\u0435\u043c \u0440\u0435\u0448\u0435\u043d\u0438\u0435 \u043c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u043e \u043d\u0430\u0433\u043b\u044f\u0434\u043d\u043e. \u041e\u043f\u044b\u0442\u043d\u044b\u0439 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a \u043e\u0441\u043e\u0437\u043d\u0430\u0435\u0442 \u0432\u0441\u0435 \u044d\u0442\u043e, \u043d\u0435 \u0437\u0430\u0434\u0443\u043c\u044b\u0432\u0430\u044f\u0441\u044c. <\/p>\n<p>  \u0418\u0442\u0430\u043a, \u043c\u044b \u043f\u0430\u0440\u0441\u0438\u043c \u0444\u043e\u0440\u043c\u0443\u043b\u0443. \u0412 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u0435 \u0445\u043e\u0442\u0438\u043c \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u0441\u0438\u043d\u0442\u0430\u043a\u0441\u0438\u0447\u0435\u0441\u043a\u043e\u0435 \u0434\u0435\u0440\u0435\u0432\u043e, \u0433\u0434\u0435 \u0432 \u0443\u0437\u043b\u0430\u0445 \u0431\u0443\u0434\u0443\u0442 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0438, \u0430 \u0432 \u043b\u0438\u0441\u0442\u044c\u044f\u0445 \u2013 \u043a\u043e\u043d\u0441\u0442\u0430\u043d\u0442\u044b. \u0415\u0441\u043b\u0438 \u0431\u044b \u0441\u043a\u043e\u0431\u043e\u043a \u043d\u0435 \u0431\u044b\u043b\u043e, \u0434\u0435\u0440\u0435\u0432\u043e \u0431\u044b\u043b\u043e \u0431\u044b \u043e\u0447\u0435\u043d\u044c \u043f\u0440\u043e\u0441\u0442\u044b\u043c. \u0423 \u043d\u0430\u0441 \u0435\u0441\u0442\u044c \u0434\u0432\u0430 \u043f\u0440\u0438\u043e\u0440\u0438\u0442\u0435\u0442\u0430 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0439, \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0435\u043d\u043d\u043e, \u0434\u0435\u0440\u0435\u0432\u043e \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u0442\u0441\u044f \u0434\u0432\u0443\u0445\u0443\u0440\u043e\u0432\u043d\u0435\u0432\u044b\u043c: \u0441\u0432\u0435\u0440\u0445\u0443 \u0441\u0442\u043e\u0438\u0442 + \u0438 -, \u0441\u043d\u0438\u0437\u0443 * \u0438 \/.<\/p>\n<p>  \u041d\u043e \u0442\u0430\u043a \u043a\u0430\u043a \u0441\u043a\u043e\u0431\u043a\u0438 \u043f\u0440\u0438\u0441\u0443\u0442\u0441\u0442\u0432\u0443\u044e\u0442, \u0434\u0435\u0440\u0435\u0432\u043e \u043c\u043e\u0436\u0435\u0442 \u0438\u043c\u0435\u0442\u044c \u043d\u0435\u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u043d\u0443\u044e \u0432\u043b\u043e\u0436\u0435\u043d\u043d\u043e\u0441\u0442\u044c. \u041d\u0430\u0438\u0432\u043d\u043e\u0435 \u0440\u0435\u0448\u0435\u043d\u0438\u0435 \u0437\u0430\u0434\u0430\u0447\u0438 \u0432\u044b\u0433\u043b\u044f\u0434\u0438\u0442 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c: \u043d\u0430\u0445\u043e\u0434\u0438\u043c \u0441\u043a\u043e\u0431\u043a\u0438 \u0438 \u043f\u043e\u043b\u043d\u043e\u0441\u0442\u044c\u044e \u0432\u044b\u043a\u0443\u0441\u044b\u0432\u0430\u0435\u043c \u0438\u0445 \u0438\u0437 \u043f\u043e\u043b\u0443\u0447\u0438\u0432\u0448\u0435\u0439\u0441\u044f \u0441\u0442\u0440\u043e\u043a\u0438 \u0438 \u0437\u0430\u043c\u0435\u043d\u044f\u0435\u043c, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u043d\u0430 \u0438\u043c\u0435\u043d\u0430 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0445 a1, a2, a3, a4\u2026 \u041f\u043e\u0441\u043b\u0435 \u0440\u0430\u0437\u0431\u043e\u0440\u0430 \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u043c \u0434\u0432\u0443\u0445\u0443\u0440\u043e\u0432\u043d\u0435\u0432\u043e\u0435 \u0434\u0435\u0440\u0435\u0432\u043e. \u0417\u0430\u0442\u0435\u043c \u0432 \u043a\u0430\u0436\u0434\u043e\u043c \u0443\u0437\u043b\u0435 \u0434\u0435\u0440\u0435\u0432\u0430, \u0433\u0434\u0435 \u043e\u0441\u0442\u0430\u043b\u0430\u0441\u044c \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u0430\u044f, \u043f\u0440\u043e\u0432\u043e\u0434\u0438\u043c \u0440\u0430\u0437\u0431\u043e\u0440 \u0442\u043e\u0433\u043e, \u0447\u0442\u043e \u0431\u044b\u043b\u043e \u0432 \u0441\u043a\u043e\u0431\u043a\u0430\u0445, \u0438 \u0432\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u043c \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u044b \u0432\u043c\u0435\u0441\u0442\u043e \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u0445 \u043a\u0443\u0441\u043a\u043e\u0432 \u043f\u043e\u0434\u0434\u0435\u0440\u0435\u0432\u0430.<\/p>\n<p>  \u041e\u0434\u043d\u0430\u043a\u043e \u0443 \u043d\u0430\u0441 \u043f\u043e\u043b\u0443\u0447\u0438\u043b\u0441\u044f \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c \u0441 \u043a\u0432\u0430\u0434\u0440\u0430\u0442\u0438\u0447\u043d\u043e\u0439 \u0432\u0440\u0435\u043c\u0435\u043d\u043d\u043e\u0439 \u0441\u043b\u043e\u0436\u043d\u043e\u0441\u0442\u044c\u044e \u0432 \u0445\u0443\u0434\u0448\u0435\u043c \u0441\u043b\u0443\u0447\u0430\u0435, \u0442.\u043a. \u0435\u0441\u043b\u0438 \u0443 \u043d\u0430\u0441 \u0431\u0443\u0434\u0435\u0442, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, 100 \u043c\u0438\u043b\u043b\u0438\u043e\u043d\u043e\u0432 \u0432\u043b\u043e\u0436\u0435\u043d\u043d\u044b\u0445 \u0441\u043a\u043e\u0431\u043e\u043a, \u0442\u043e \u043d\u0430 \u043a\u0430\u0436\u0434\u043e\u043c \u0448\u0430\u0433\u0435 \u043f\u0440\u0438\u0434\u0435\u0442\u0441\u044f \u0438\u0441\u043a\u0430\u0442\u044c \u0437\u0430\u043a\u0440\u044b\u0432\u0430\u044e\u0449\u0443\u044e \u0441\u043a\u043e\u0431\u043a\u0443, \u0430 \u043f\u043e\u0442\u043e\u043c \u0435\u0449\u0435 \u0440\u0430\u0437 \u043f\u0430\u0440\u0441\u0438\u0442\u044c \u044d\u0442\u0443 \u0441\u0442\u0440\u043e\u043a\u0443, \u043f\u0440\u043e\u0439\u0434\u044f \u0435\u0435 \u0446\u0435\u043b\u0438\u043a\u043e\u043c \u0431\u0435\u0437 \u043f\u0440\u0430\u0432\u043e\u0433\u043e \u0438 \u043b\u0435\u0432\u043e\u0433\u043e \u0441\u0438\u043c\u0432\u043e\u043b\u043e\u0432. \u041f\u043e \u0431\u043e\u043b\u044c\u0448\u043e\u043c\u0443 \u0441\u0447\u0435\u0442\u0443, \u044d\u0442\u043e \u0443\u0436\u0435 \u043c\u043e\u0436\u043d\u043e \u043f\u043e\u0441\u0447\u0438\u0442\u0430\u0442\u044c \u0437\u0430 \u0432\u0435\u0440\u043d\u043e\u0435 \u0440\u0435\u0448\u0435\u043d\u0438\u0435, \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u0442\u0430\u043a\u0430\u044f \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0430 \u0431\u0443\u0434\u0435\u0442. <\/p>\n<p>  \u041d\u043e \u0431\u043e\u043b\u044c\u0448\u0438\u043d\u0441\u0442\u0432\u043e \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0441\u0442\u043e\u0432 \u043e\u0442\u043c\u0435\u0442\u0435\u0442 \u044d\u0442\u043e\u0442 \u043f\u043e\u0434\u0445\u043e\u0434 \u043a\u0430\u043a \u0441\u043b\u0438\u0448\u043a\u043e\u043c \u043b\u043e\u0431\u043e\u0432\u043e\u0439 \u0438 \u043d\u0435\u044d\u0444\u0444\u0435\u043a\u0442\u0438\u0432\u043d\u044b\u0439, \u0441\u0440\u0430\u0437\u0443 \u043f\u0435\u0440\u0435\u0439\u0434\u044f \u043a \u043f\u043e\u0438\u0441\u043a\u0443 \u043b\u0438\u043d\u0435\u0439\u043d\u043e\u0433\u043e \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c\u0430. \u0414\u043b\u044f \u044d\u0442\u043e\u0433\u043e, \u043e\u0447\u0435\u0432\u0438\u0434\u043d\u043e, \u043d\u0430\u0447\u0438\u043d\u0430\u044f \u0440\u0435\u043a\u0443\u0440\u0441\u0438\u044e \u0441\u043e \u0441\u043a\u043e\u0431\u043a\u0430\u043c\u0438 \u043d\u0435 \u043d\u0443\u0436\u043d\u043e \u0441\u0440\u0430\u0437\u0443 \u0438\u0441\u043a\u0430\u0442\u044c \u0437\u0430\u043a\u0440\u044b\u0432\u0430\u044e\u0449\u0443\u044e. \u041e\u0431\u0430 \u043d\u0430\u0448\u0438\u0445 \u0442\u0435\u0441\u0442\u043e\u0432\u044b\u0445 \u043a\u0430\u043d\u0434\u0438\u0434\u0430\u0442\u0430 \u043f\u043e\u0448\u043b\u0438 \u0438\u043c\u0435\u043d\u043d\u043e \u043f\u043e \u044d\u0442\u043e\u043c\u0443 \u043f\u0443\u0442\u0438. \u0414\u0435\u0439\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u0439 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0441\u0442 \u0437\u043d\u0430\u043b, \u043a\u0430\u043a \u0438\u043c\u0435\u043d\u043d\u043e \u044d\u0442\u043e \u0441\u0434\u0435\u043b\u0430\u0442\u044c, \u0430 \u043f\u043e\u0442\u043e\u043c\u0443 \u0441\u043f\u0440\u0430\u0432\u0438\u043b\u0441\u044f \u0441 \u0437\u0430\u0434\u0430\u0447\u0435\u0439 \u0433\u043e\u0440\u0430\u0437\u0434\u043e \u0431\u044b\u0441\u0442\u0440\u0435\u0439, \u0430 \u043c\u0435\u043d\u0435\u0434\u0436\u0435\u0440\u0443 \u043f\u0440\u0438\u0448\u043b\u043e\u0441\u044c \u0441 \u044d\u0442\u0438\u043c \u043f\u043e\u0432\u043e\u0437\u0438\u0442\u044c\u0441\u044f. \u0412 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u0435 \u0443 \u043e\u0431\u043e\u0438\u0445 \u043f\u043e\u043b\u0443\u0447\u0438\u043b\u043e\u0441\u044c \u043d\u0435\u0447\u0442\u043e \u043f\u043e\u0445\u043e\u0436\u0435\u0435 \u043d\u0430 recursive descent parser (\u043f\u043e\u0434\u0432\u0438\u0434 LL-\u043f\u0430\u0440\u0441\u0435\u0440\u0430).<\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">\u041a\u043e\u0434 \u043c\u0435\u043d\u0435\u0434\u0436\u0435\u0440\u0430<\/b><\/p>\n<div class=\"spoiler_text\">\n<pre><code>#include &lt;string&gt; #include &lt;cassert&gt; #include &lt;memory&gt; #include &lt;stdexcept&gt; #include &lt;vector&gt; #include &lt;iostream&gt; #include &lt;cstdio&gt;  using namespace std;  struct Token {         enum Type { value, operation, opening_bracket, closing_bracket};         Type type;         string text; };  struct Tokenizer {         \/\/I am too lazy to write real tokenizer, it is very simple. I hope formula generator for fake tokenizer will be ok.  public:         Tokenizer() { content=generate(); pos=content.begin(); } ;         const Token* peek() { return pos!=content.end() ?&*pos:0; } ;         const Token* get() { if (pos!=content.end()) { cout &lt;&lt; pos-&gt;text &lt;&lt; &quot; &quot;; } return pos!=content.end()?&*pos++:0; } ; private:     vector&lt;Token&gt; generate(int level=0);      private:         vector&lt;Token&gt;::iterator pos;         vector&lt;Token&gt; content; };  \/\/To be honest using classes for expression parsing is a bit overkill, old style could save some code.  class Expression; typedef struct auto_ptr&lt;Expression&gt; ExpressionPtr;  \/\/Represents abstract expression class Expression { public:         Expression() {}         virtual ~Expression() {}         \/\/actually this static parse functions should be constructor in most classes. I.e. this is violation of principle 'Resource Acquisition Is Initialization'.         \/\/but some functions return different classes depending on context, i.e. this is some kind of 'virtual constructor' (see Operation::parse for example)         \/\/so I made decision to make static construction function in all classes, just for uniformity         static ExpressionPtr parse(Tokenizer& tokens);         virtual float calc()=0;         virtual void debug(string prefix)=0; };   \/\/Represents single value: for example 3.1415 class Value: public Expression { public:         Value() {}         virtual ~Value() {}         static bool isItYou(Tokenizer& tokens);         static ExpressionPtr parse(Tokenizer& tokens);         virtual float calc() { return _value; }         virtual void debug(string prefix) { cout &lt;&lt; prefix &lt;&lt; &quot;Value(&quot; &lt;&lt;  calc() &lt;&lt;&quot;): &quot; &lt;&lt; _value &lt;&lt; endl; }  protected:         float _value; };  \/\/Represents operation: + or - class Operation: public Expression { public:         Operation() {};         virtual ~Operation() {}         static ExpressionPtr parse(Tokenizer& tokens, ExpressionPtr& l);         virtual float calc();         virtual void debug(string prefix) { cout &lt;&lt; prefix &lt;&lt; &quot;Operation(&quot; &lt;&lt;  calc() &lt;&lt;&quot;): &quot; &lt;&lt; _operation &lt;&lt; endl; if ( _left.get() ) _left-&gt;debug(prefix + &quot;\\t&quot;); if ( _right.get() ) _right-&gt;debug(prefix + &quot;\\t&quot;); }  protected:         std::auto_ptr&lt;Expression&gt; _left;         std::auto_ptr&lt;Expression&gt; _right;         string _operation; };  \/\/Represents operation: * or \/ class PriorityOperation: public Operation { public:         PriorityOperation() {};         virtual ~PriorityOperation() {}         static ExpressionPtr parse(Tokenizer& tokens, ExpressionPtr& left);         \/\/virtual float calc(); inherit it         virtual void debug(string prefix) { cout &lt;&lt; prefix &lt;&lt; &quot;PriorityOperation(&quot; &lt;&lt;  calc() &lt;&lt;&quot;): &quot; &lt;&lt; _operation &lt;&lt; endl; if ( _left.get() ) _left-&gt;debug(prefix + &quot;\\t&quot;); if ( _right.get() ) _right-&gt;debug(prefix + &quot;\\t&quot;); }  };   \/\/Represents bracketed expression: (expr) class BracketExpression: public Expression { public:         static bool isItYou(Tokenizer& tokens);         static ExpressionPtr parse(Tokenizer& tokens);         virtual float calc() { return _internal-&gt;calc(); } ;         virtual void debug(string prefix) { cout &lt;&lt; prefix &lt;&lt; &quot;Brackets(&quot; &lt;&lt;  calc() &lt;&lt;&quot;): &quot;  &lt;&lt; endl; _internal-&gt;debug(prefix + &quot;\\t&quot;); }  protected:         std::auto_ptr&lt;Expression&gt; _internal;  };   ExpressionPtr Expression::parse(Tokenizer& tokens) {     \/\/cout &lt;&lt; &quot;Expression::parse&quot; &lt;&lt; endl;              if (!tokens.peek()) return ExpressionPtr();          if ( BracketExpression::isItYou(tokens) )         {                 return BracketExpression::parse(tokens);         }         else         if ( Value::isItYou(tokens) )         {                         return Value::parse(tokens);         }         else         {                 throw logic_error(&quot;(Expression) Wtf is that: &quot; + tokens.peek()-&gt;text );         } }  bool Value::isItYou(Tokenizer& tokens)  {         const Token* t = tokens.peek();         if ( !t || t-&gt;type != Token::value ) return false;           char* endptr;         strtod( t-&gt;text.c_str(), &endptr);         return *endptr == 0; }  ExpressionPtr Value::parse(Tokenizer& tokens) {     \/\/cout &lt;&lt; &quot;Value::parse&quot; &lt;&lt; endl;              std::auto_ptr&lt;Value&gt; foo( new Value );          const Token* t=tokens.get();         assert( t && t-&gt;type == Token::value );           char* endptr;         foo-&gt;_value = strtod( t-&gt;text.c_str(), &endptr);         return ExpressionPtr(foo.release()); \/\/lack of heterosexual auto_ptr conversions is killing me }  bool BracketExpression::isItYou(Tokenizer& tokens)  {         return tokens.peek() && tokens.peek()-&gt;type == Token::opening_bracket; }   ExpressionPtr BracketExpression::parse(Tokenizer& tokens) {     \/\/cout &lt;&lt; &quot;BracketExpression::parse&quot; &lt;&lt; endl;         const Token* t=tokens.get();         assert ( t-&gt;type == Token::opening_bracket );          auto_ptr&lt;BracketExpression&gt; result ( new BracketExpression );         ExpressionPtr null;         result-&gt;_internal = Operation::parse(tokens, null);          t = tokens.get();         if ( t ==0 || t-&gt;type != Token::closing_bracket )         {                 throw logic_error(&quot;(BracketExpression) mismatched brackets &quot;);         }          return ExpressionPtr(result.release()); }   ExpressionPtr Operation::parse(Tokenizer& tokens, ExpressionPtr& l) {     \/\/cout &lt;&lt; &quot;Operation::parse:&quot; &lt;&lt; l.get() &lt;&lt; endl;         ExpressionPtr left;          if (l.get())          {                 left=l;                 \/\/ left is assigned for us.         }         else         {                 left=Expression::parse(tokens);         }                  const Token *t=tokens.peek();         if (!t || t-&gt;type == Token::closing_bracket  ) return left; \/\/just return Value, sorry no operation guys          if (t-&gt;type == Token::operation && (t-&gt;text==&quot;*&quot; || t-&gt;text==&quot;\/&quot;) )         {                 ExpressionPtr result = PriorityOperation::parse(tokens, left);                                  \/\/we got exit after priority operations will end, parse position will be on + or - or at end                 left = result;                          t=tokens.peek();                 if (!t || t-&gt;type == Token::closing_bracket  ) return left; \/\/just return Value, sorry no operation guys         }      \/\/cout &lt;&lt; &quot;Operation::parse again&quot; &lt;&lt; endl;         if (t-&gt;type == Token::operation && (t-&gt;text==&quot;+&quot; || t-&gt;text==&quot;-&quot;) )         {                 tokens.get(); \/\/just commit previous peek                  auto_ptr&lt;Operation&gt; result ( new Operation );                 result-&gt;_operation = t-&gt;text;                 result-&gt;_left=left; \/\/smart ptr giveup ownership                  \/\/cout &lt;&lt; &quot;Operation::parse before token&quot; &lt;&lt; endl;         ExpressionPtr foo=Expression::parse(tokens);         \/\/cout &lt;&lt; &quot;Operation::parse after expression&quot; &lt;&lt; endl;                  const Token *t=tokens.peek();                  if (t != 0 && (t-&gt;text==&quot;*&quot; || t-&gt;text==&quot;\/&quot;))         {             \/\/cout &lt;&lt; &quot;Operation::parse to priority&quot; &lt;&lt; endl;             foo = PriorityOperation::parse(tokens,foo);         }                  result-&gt;_right=foo;                  ExpressionPtr bar(result.release());         return Operation::parse(tokens, bar);                          }         else         {                 throw logic_error(&quot;(Operation) Wtf is that: &quot; + tokens.peek()-&gt;text);         } }  ExpressionPtr PriorityOperation::parse(Tokenizer& tokens, ExpressionPtr& left) {     \/\/cout &lt;&lt; &quot;PriorityOperation::parse&quot; &lt;&lt; endl;          \/\/ left is already assigned for priority operation         const Token *t=tokens.peek();         if (!t || t-&gt;type == Token::closing_bracket  ) return left; \/\/just return Value, sorry no operation guys          if (t-&gt;type == Token::operation && (t-&gt;text==&quot;*&quot; || t-&gt;text==&quot;\/&quot;) )         {                 tokens.get(); \/\/commit previuos peek                  auto_ptr&lt;PriorityOperation&gt; result ( new PriorityOperation );                  result-&gt;_operation = t-&gt;text;                 result-&gt;_left=left;                 result-&gt;_right=Expression::parse(tokens);                 ExpressionPtr rs(result.release());                  return PriorityOperation::parse(tokens, rs);          }         else if (t-&gt;type == Token::operation && (t-&gt;text==&quot;+&quot; || t-&gt;text==&quot;-&quot;) )         {                 return left;         }         else         {                 throw logic_error(&quot;(PriorityOperation) Wtf is that: &quot; + tokens.peek()-&gt;text );         } }   float Operation::calc() {         if (_operation == &quot;+&quot;)         {                 float l=_left.get()?_left-&gt;calc():0.0f;                 float r=_right.get()?_right-&gt;calc():0.0f;                 return l+r;         }         else         if (_operation == &quot;-&quot;)         {                 float l=_left.get()?_left-&gt;calc():0.0f;                 float r=_right.get()?_right-&gt;calc():0.0f;                 return l-r;         }                 else         if (_operation == &quot;*&quot;)         {                 float l=_left.get()?_left-&gt;calc():1.0f;                 float r=_right.get()?_right-&gt;calc():1.0f;                 return  l*r;          }                 else         if (_operation == &quot;\/&quot;)         {                 float l = _left.get()?_left-&gt;calc():1.0f;                 float r = _right.get()?_right-&gt;calc():1.0f;                 return l\/r;         }         else         {                 throw logic_error(&quot;Wft: operation udefined&quot;);         }                 }  \/\/returning vector by value, will be slow( O(n*n) actually ), but it is just testing code. vector&lt;Token&gt; Tokenizer::generate(int level) {     \/\/be careful with this value - formula size is approx 2^level     if (level &gt; 6)     {         Token t;         char f[100];         snprintf(f,100,&quot;%d&quot;,int(rand() % 100));         t.text=f;         t.type=Token::value;         return vector&lt;Token&gt;(&t,&t+1);     }      if (rand() % 10 == 0)     {             vector&lt;Token&gt; result;             Token t1,t2;             t1.type=Token::opening_bracket;             t1.text=&quot;(&quot;;             t2.type=Token::closing_bracket;             t2.text=&quot;)&quot;;             result.push_back(t1);             vector&lt;Token&gt; r=generate(level+1);             result.insert(result.end(),r.begin(),r.end());             result.push_back(t2);              return result;     }              char op = &quot;+-*\/&quot;[rand()%4];     Token t;     t.type=Token::operation;     t.text=op;      vector&lt;Token&gt; result=generate(level+1);     result.push_back(t);     vector&lt;Token&gt; r2=generate(level+1);     result.insert(result.end(),r2.begin(),r2.end());      return result; }  int main() {                 try         {                 \/\/create fake tokenizer                 Tokenizer tk;                  \/\/parse it                 ExpressionPtr null;                 ExpressionPtr foo = Operation::parse(tk,null);                 cout &lt;&lt; endl;                 foo-&gt;debug(&quot;&quot;);                 float result = foo-&gt;calc();                         cout &lt;&lt; &quot;result = &quot; &lt;&lt; result &lt;&lt; endl;         }         catch(exception& e)         {                 cout &lt;&lt; e.what() &lt;&lt; endl;                 return 1;                           }          return 0; }<\/code><\/pre>\n<p>  <\/div>\n<\/div>\n<p>  <\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">\u041a\u043e\u0434 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0430<\/b><\/p>\n<div class=\"spoiler_text\">\n<pre><code>#include &lt;stdlib.h&gt; #include &lt;string.h&gt; #include &lt;iostream&gt; #include &lt;string&gt; #include &lt;vector&gt; #include &lt;stdexcept&gt;  struct token {     enum { E_UNDEF, E_NUMBER, E_OPERATOR, E_LEVEL  } type;      union {         double d_val;         int i_val;         char c_val;     } data;      token() {         type = E_UNDEF;     }      token(double val) : type(E_NUMBER) {         data.d_val = val;     }     token(int val) : type(E_LEVEL) {         data.i_val = val;     }     token(char val) : type(E_OPERATOR) {         data.c_val = val;     } };  typedef std::vector&lt;token&gt; tokens;  void push_level(tokens &pr, int level) {     if (pr.empty() || pr.back().type != token::E_LEVEL) {         pr.push_back(token(level));     } else {         pr.back().data.i_val += level;     } }  void push_operator(tokens &pr, char op) {     pr.push_back(token(op)); }  void push_number(tokens &pr, int num) {     if (pr.empty() || pr.back().type == token::E_LEVEL || (pr.back().type == token::E_OPERATOR && pr.size() &gt; 1 && pr[pr.size() - 2].type == token::E_NUMBER) ) {         pr.push_back(token((double)num));     } else if (pr.back().type == token::E_OPERATOR && (pr.size() == 1 || pr[pr.size() - 2].type == token::E_LEVEL) ) {         if (pr.back().data.c_val == '*' || pr.back().data.c_val == '\/') {             throw std::domain_error(&quot;unexpected operator&quot;);         }         if (pr.back().data.c_val == '-') {             num = -num;         }         pr.pop_back();         pr.push_back(token((double)num));     } else {         throw std::domain_error(&quot;unexpected number&quot;);     } }  void pop_level(tokens &pr, int level) {     if (level &lt;= 0) {         return;     }     if (pr.empty() || pr.back().type == token::E_LEVEL || pr.back().type == token::E_OPERATOR) {         throw std::domain_error(&quot;unexpected closing brace&quot;);     } else if (pr.size() &gt; 1 && pr[pr.size() - 2].type == token::E_LEVEL) {         if (pr[pr.size() - 2].data.i_val &gt; level) {             pr[pr.size() - 2].data.i_val -= level;         } else {             int delta = level - pr[pr.size() - 2].data.i_val;             token tmp = pr.back();             pr.pop_back(); pr.pop_back();             pr.push_back(tmp);             pop_level(pr, delta);         }     } else if (pr.size() &gt; 3) {         token s2 = pr.back(); pr.pop_back();         token op = pr.back(); pr.pop_back();         token s1 = pr.back(); pr.pop_back();          if (s1.type != token::E_NUMBER || op.type != token::E_OPERATOR || s2.type != token::E_NUMBER) {             throw std::domain_error(&quot;unexpected closing brace&quot;);         }          switch (op.data.c_val) {             case '+':                 s1.data.d_val += s2.data.d_val;                 break;             case '-':                 s1.data.d_val -= s2.data.d_val;                 break;             case '*':                 s1.data.d_val *= s2.data.d_val;                 break;             case '\/':                 s1.data.d_val \/= s2.data.d_val;                 break;             default:             throw std::domain_error(&quot;internal error&quot;);         }          if (pr.back().type == token::E_LEVEL) {             if (pr.back().data.i_val &gt; level) {                 pr.back().data.i_val -= level;                 pr.push_back(s1);             } else {                 int delta = level - pr.back().data.i_val;                 pr.pop_back();                 pr.push_back(s1);                 pop_level(pr, delta);             }         } else if (pr.back().type == token::E_OPERATOR) {             pr.push_back(s1);             pop_level(pr, level);         } else {             throw std::domain_error(&quot;unexpected closing brace&quot;);         }     } else {         throw std::domain_error(&quot;unexpected closing brace&quot;);     } }  double process(const std::string &str) {     tokens program;      push_level(program, 3);     for (std::string::const_iterator cit = str.begin(); cit != str.end(); ++cit) {         switch (*cit) {             case '(':                 push_level(program, 3);                 break;             case ')':                 pop_level(program, 3);                 break;             case '*':             case '\/':                 pop_level(program, 1);                 push_operator(program, *cit);                 push_level(program, 1);                 break;             case '+':             case '-':                 if (cit == str.begin() || strchr(&quot;(+\/-*&quot;, *(cit-1))) {                     push_operator(program, *cit);                 } else {                     pop_level(program, 2);                     push_operator(program, *cit);                     push_level(program, 2);                 }                 break;             case ' ':                 break;             case '0': case '1': case '2': case '3': case '4': case '5': case '6': case '7': case '8': case '9':                 {                     int curnum = 0;                     while (cit != str.end()) {                         curnum = 10*curnum + (*cit - '0');                         if ((cit + 1) == str.end() || !isdigit(*(cit+1))) {                             break;                         }                         ++cit;                     }                     push_number(program, curnum);                 }                 break;             default:                 throw std::domain_error(&quot;unexpected symbol&quot;);         }     }     pop_level(program, 3);      if (program.size() == 0 || program.size() &gt; 1) {         throw std::domain_error(&quot;incomplete expression&quot;);     }      return program.back().data.d_val; }  int main() {     std::string line;     while (!std::cin.eof()) {         std::getline(std::cin, line);          if (line.length() &gt; 0) {             try {                 std::cout &lt;&lt; process(line) &lt;&lt; std::endl;             } catch (std::exception &e) {                 std::cout &lt;&lt; &quot;error: &quot; &lt;&lt; e.what() &lt;&lt; std::endl;             }         }     }      return 0; }<\/code><\/pre>\n<\/div>\n<\/div>\n<p>  \u0415\u0441\u043b\u0438 \u0432\u044b \u0437\u043d\u0430\u0435\u0442\u0435 \u043e \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u043e\u0432\u0430\u043d\u0438\u0438 \u043a\u0430\u043a\u0438\u0445-\u043d\u0438\u0431\u0443\u0434\u044c \u043a\u043b\u0430\u0441\u0441\u0438\u0447\u0435\u0441\u043a\u0438\u0445 \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c\u043e\u0432 \u0432 \u044d\u0442\u043e\u0439 \u043e\u0431\u043b\u0430\u0441\u0442\u0438, \u0442\u043e \u0437\u0430\u0434\u0430\u0447\u0430 \u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u0441\u044f \u043f\u0440\u043e\u0449\u0435. \u041e\u0434\u043d\u0430\u043a\u043e \u0447\u0442\u043e-\u0442\u043e \u0440\u0430\u0431\u043e\u0442\u0430\u044e\u0449\u0435\u0435 \u043c\u043e\u0436\u0435\u0442 \u043d\u0430\u043f\u0438\u0441\u0430\u0442\u044c \u043f\u0440\u0430\u043a\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u043b\u044e\u0431\u043e\u0439.<\/p>\n<p>  \u0415\u0441\u043b\u0438 \u0433\u043e\u0432\u043e\u0440\u0438\u0442\u044c \u043e\u0431 \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c\u0430\u0445 \u0440\u0430\u0437\u0431\u043e\u0440\u0430, \u0442\u043e \u043a\u043b\u0430\u0441\u0441\u0438\u0447\u0435\u0441\u043a\u0438\u043c \u0441\u0447\u0438\u0442\u0430\u0435\u0442\u0441\u044f shunting yard algorithm. \u0422\u0430\u043a\u0436\u0435 \u043f\u043e\u043c\u0438\u043c\u043e Recursive descent parser \u043f\u043e\u043f\u0443\u043b\u044f\u0440\u043d\u044b\u043c\u0438 \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f LR-\u043f\u0430\u0440\u0441\u0435\u0440.<\/p>\n<h4>\u041a\u0440\u043e\u043c\u0435 \u043a\u043e\u0434\u0430<\/h4>\n<p>  \u0415\u0441\u043b\u0438 \u0436\u0435 \u043a\u0430\u043d\u0434\u0438\u0434\u0430\u0442 \u043f\u0440\u0435\u0442\u0435\u043d\u0434\u0443\u0435\u0442 \u043d\u0430 \u0437\u0432\u0430\u043d\u0438\u0435 senior-\u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0430, \u043c\u044b \u043e\u0431\u044f\u0437\u0430\u0442\u0435\u043b\u044c\u043d\u043e \u043f\u043e\u0441\u0442\u0430\u0440\u0430\u0435\u043c\u0441\u044f \u043f\u043e\u043d\u044f\u0442\u044c, \u0438\u043c\u0435\u0435\u0442 \u043b\u0438 \u043e\u043d \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u043e \u043f\u043b\u0430\u043d\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0438 \u0430\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u0443\u0440\u044b \u0441\u0438\u0441\u0442\u0435\u043c\u044b.<\/p>\n<p>  \u0427\u0430\u0441\u0442\u043e \u043c\u044b \u0433\u043e\u0432\u043e\u0440\u0438\u043c \u043e \u043f\u043e\u0434\u0445\u043e\u0434\u0435 \u043a \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0435. \u042d\u0442\u043e \u043e\u0441\u043e\u0431\u0435\u043d\u043d\u043e \u0432\u0430\u0436\u043d\u043e \u0434\u043b\u044f \u043b\u044e\u0434\u0435\u0439, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0443\u0442\u0432\u0435\u0440\u0436\u0434\u0430\u044e\u0442, \u0447\u0442\u043e \u0438\u043c\u0435\u044e\u0442 \u043e\u043f\u044b\u0442 \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u043f\u0440\u043e\u0435\u043a\u0442\u0430\u043c\u0438, \u043d\u043e \u0442\u0430\u043a\u0436\u0435 \u043c\u044b \u0447\u0430\u0441\u0442\u043e \u0431\u0435\u0441\u0435\u0434\u0443\u0435\u043c \u043d\u0430 \u044d\u0442\u0438 \u0442\u0435\u043c\u044b \u0438 \u0441 \u043e\u0431\u044b\u0447\u043d\u044b\u043c\u0438 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0430\u043c\u0438, \u0432 \u044d\u0442\u043e\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u044d\u0442\u043e \u0443\u0436\u0435 \u043d\u0435 \u0442\u0435\u0441\u0442, \u0441\u043a\u043e\u0440\u0435\u0435 \u043c\u044b \u043f\u0440\u043e\u0441\u0442\u043e \u0445\u043e\u0442\u0438\u043c \u043f\u043e\u043d\u044f\u0442\u044c, \u0447\u0435\u0433\u043e \u0447\u0435\u043b\u043e\u0432\u0435\u043a \u0436\u0434\u0435\u0442, \u0438 \u0431\u0443\u0434\u0435\u0442 \u043b\u0438 \u0435\u043c\u0443 \u0443 \u043d\u0430\u0441 \u043a\u043e\u043c\u0444\u043e\u0440\u0442\u043d\u043e \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c.<\/p>\n<p>  \u0412\u0430\u0436\u043d\u0430\u044f \u0447\u0430\u0441\u0442\u044c \u0441\u043e\u0431\u0435\u0441\u0435\u0434\u043e\u0432\u0430\u043d\u0438\u044f \u2013 \u043e\u0431\u0441\u0443\u0436\u0434\u0435\u043d\u0438\u0435 \u043f\u0440\u043e\u0435\u043a\u0442\u043e\u0432, \u043d\u0430\u0434 \u043a\u043e\u0442\u043e\u0440\u044b\u043c\u0438 \u043a\u0430\u043d\u0434\u0438\u0434\u0430\u0442\u0443 \u0434\u043e\u0432\u0435\u043b\u043e\u0441\u044c \u043f\u043e\u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c. \u041d\u0443\u0436\u043d\u043e \u043f\u043e\u043d\u044f\u0442\u044c, \u043a\u0430\u043a\u0443\u044e \u0440\u043e\u043b\u044c \u043e\u043d \u0438\u0433\u0440\u0430\u043b \u0432 \u0438\u0445 \u0438\u0441\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u0438. \u0412 \u0440\u0435\u0437\u044e\u043c\u0435 \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u0443\u043a\u0430\u0437\u0430\u043d \u0434\u0435\u0441\u044f\u0442\u043e\u043a \u043c\u0435\u0433\u0430\u043f\u0440\u043e\u0435\u043a\u0442\u043e\u0432, \u043d\u043e \u043e\u0431\u044b\u0447\u043d\u043e \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u043f\u0430\u0440\u044b \u0432\u043e\u043f\u0440\u043e\u0441\u043e\u0432 \u043f\u043e \u043a\u0430\u0436\u0434\u043e\u043c\u0443 \u0438\u0437 \u043d\u0438\u0445, \u0447\u0442\u043e\u0431\u044b \u043f\u043e\u043d\u044f\u0442\u044c, \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u043b\u0438 \u0447\u0435\u043b\u043e\u0432\u0435\u043a \u0438\u0433\u0440\u0430\u043b \u0432 \u043d\u0438\u0445 \u0432\u0430\u0436\u043d\u0443\u044e \u0440\u043e\u043b\u044c \u0438\u043b\u0438 \u0431\u044b\u043b \u043d\u0430 \u043f\u043e\u0434\u0445\u0432\u0430\u0442\u0435. <\/p>\n<p>  \u0418\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u043e \u0442\u0430\u043a\u0436\u0435 \u043f\u043e\u0441\u043b\u0443\u0448\u0430\u0442\u044c, \u043e \u043a\u0430\u043a\u0438\u0445 \u0430\u0441\u043f\u0435\u043a\u0442\u0430\u0445 \u043f\u0440\u043e\u0435\u043a\u0442\u0430 \u043a\u0430\u043d\u0434\u0438\u0434\u0430\u0442 \u0431\u0443\u0434\u0435\u0442 \u0440\u0430\u0441\u0441\u043a\u0430\u0437\u044b\u0432\u0430\u0442\u044c \u043f\u043e\u0434\u0440\u043e\u0431\u043d\u0435\u0435 \u0432\u0441\u0435\u0433\u043e. \u042d\u0442\u043e \u043c\u043e\u0436\u0435\u0442 \u0440\u0430\u0441\u043a\u0440\u044b\u0442\u044c \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0434\u0435\u0442\u0430\u043b\u0438 \u043e \u0435\u0433\u043e \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438. \u0412 \u0441\u0432\u043e\u044e \u043e\u0447\u0435\u0440\u0435\u0434\u044c, \u043c\u044b \u0440\u0430\u0441\u0441\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u043c \u043e \u0442\u043e\u043c, \u043a\u0430\u043a\u0438\u0435 \u043f\u0440\u043e\u0435\u043a\u0442\u044b \u043c\u043e\u0436\u0435\u0442 \u043f\u0440\u0435\u0434\u043b\u043e\u0436\u0438\u0442\u044c \u042f\u043d\u0434\u0435\u043a\u0441. \u0423 \u0432\u0441\u0435\u0445 \u0435\u0441\u0442\u044c \u0441\u0432\u043e\u0438 \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u044b \u0438 \u043f\u0440\u0435\u0434\u043f\u043e\u0447\u0442\u0435\u043d\u0438\u044f, \u0430 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c \u0432\u044b\u0431\u043e\u0440\u0430 \u2013 \u044d\u0442\u043e \u0432\u0441\u0435\u0433\u0434\u0430 \u043f\u0440\u0438\u044f\u0442\u043d\u043e.<\/p>\n<p>  \u0412 \u043a\u043e\u043d\u0435\u0447\u043d\u043e\u043c \u0438\u0442\u043e\u0433\u0435, \u043c\u044b \u043f\u0440\u0438\u043d\u0438\u043c\u0430\u0435\u043c \u0440\u0435\u0448\u0435\u043d\u0438\u0435, \u043f\u043e\u0434\u0445\u043e\u0434\u0438\u0442 \u043d\u0430\u043c \u043a\u0430\u043d\u0434\u0438\u0434\u0430\u0442 \u0438\u043b\u0438 \u043d\u0435\u0442. \u041e\u0434\u043d\u0430\u043a\u043e \u043e\u043a\u043e\u043d\u0447\u0430\u0442\u0435\u043b\u044c\u043d\u043e \u044f\u0441\u043d\u043e, \u043f\u0440\u0438\u0436\u0438\u0432\u0435\u0442\u0441\u044f \u043b\u0438 \u0447\u0435\u043b\u043e\u0432\u0435\u043a \u0432 \u042f\u043d\u0434\u0435\u043a\u0441\u0435, \u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u0441\u044f \u043f\u043e\u0441\u043b\u0435 \u0438\u0441\u043f\u044b\u0442\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0433\u043e \u0441\u0440\u043e\u043a\u0430. \u0415\u0441\u043b\u0438 \u0431\u044b \u043e \u0440\u0430\u0431\u043e\u0442\u043d\u0438\u043a\u0435 \u0432\u0441\u0435 \u043c\u043e\u0436\u043d\u043e \u0431\u044b\u043b\u043e \u043f\u043e\u043d\u044f\u0442\u044c \u0438\u0441\u043a\u043b\u044e\u0447\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u043f\u043e \u0441\u043e\u0431\u0435\u0441\u0435\u0434\u043e\u0432\u0430\u043d\u0438\u044e, \u043c\u0438\u0440 \u0431\u044b \u0432\u044b\u0433\u043b\u044f\u0434\u0435\u043b \u0441\u043e\u0432\u0441\u0435\u043c \u0438\u043d\u0430\u0447\u0435. <\/p>\n<p>  \u041d\u0430 \u0442\u0435\u0445, \u043a\u0442\u043e \u043f\u043e \u043a\u0430\u043a\u0438\u043c-\u0442\u043e \u043f\u0440\u0438\u0447\u0438\u043d\u0430\u043c \u043d\u0435 \u043f\u0440\u043e\u0448\u0435\u043b \u0441\u043e\u0431\u0435\u0441\u0435\u0434\u043e\u0432\u0430\u043d\u0438\u0435, \u043c\u044b \u0437\u0430 \u0440\u0435\u0434\u043a\u0438\u043c\u0438 \u0438\u0441\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f\u043c\u0438 \u043a\u0440\u0435\u0441\u0442 \u043d\u0435 \u0441\u0442\u0430\u0432\u0438\u043c. \u041a\u0430\u043a \u043f\u0440\u0430\u0432\u0438\u043b\u043e, \u043c\u044b \u0433\u043e\u0442\u043e\u0432\u044b \u0440\u0430\u0441\u0441\u043c\u0430\u0442\u0440\u0438\u0432\u0430\u0442\u044c \u043a\u0430\u043d\u0434\u0438\u0434\u0430\u0442\u0430 \u0441\u043d\u043e\u0432\u0430 \u0447\u0435\u0440\u0435\u0437 \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u043e\u0435 \u0432\u0440\u0435\u043c\u044f. \u041c\u043d\u043e\u0433\u0438\u0435 \u0440\u0435\u043a\u0440\u0443\u0442\u0438\u0440\u0443\u044e\u0449\u0438\u0435 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0438 \u0434\u0430\u044e\u0442 \u043a\u0430\u043d\u0434\u0438\u0434\u0430\u0442\u0430\u043c \u0441\u043e\u0432\u0435\u0442\u044b \u0438 \u0441\u043f\u0438\u0441\u043e\u043a \u043b\u0438\u0442\u0435\u0440\u0430\u0442\u0443\u0440\u044b. \u041f\u0440\u0430\u0432\u0434\u0430, \u043c\u044b \u043d\u0435 \u043c\u043e\u0436\u0435\u043c \u043f\u043e\u0440\u0443\u0447\u0438\u0442\u044c\u0441\u044f, \u0447\u0442\u043e \u0442\u0430\u043a \u0434\u0435\u043b\u0430\u044e\u0442 \u0430\u0431\u0441\u043e\u043b\u044e\u0442\u043d\u043e \u0432\u0441\u0435, \u043d\u043e \u0447\u0430\u0441\u0442\u043e \u0434\u043b\u044f \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0430 \u043e\u0442\u043a\u0430\u0437 \u043a\u0430\u043d\u0434\u0438\u0434\u0430\u0442\u0443 \u2013 \u043d\u0435 \u043c\u0435\u043d\u044c\u0448\u0438\u0439 \u0441\u0442\u0440\u0435\u0441\u0441, \u0447\u0435\u043c \u0434\u043b\u044f \u0441\u0430\u043c\u043e\u0433\u043e \u043a\u0430\u043d\u0434\u0438\u0434\u0430\u0442\u0430.<\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">\u0421\u043f\u0438\u0441\u043e\u043a \u043b\u0438\u0442\u0435\u0440\u0430\u0442\u0443\u0440\u044b<\/b><\/p>\n<div class=\"spoiler_text\">\n<ul>\n<li>\u0412\u0438\u0440\u0442, \u00ab\u0410\u043b\u0433\u043e\u0440\u0438\u0442\u043c\u044b + \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u044b \u0434\u0430\u043d\u043d\u044b\u0445 = \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u044b\u00bb<\/li>\n<li>\u041a\u043e\u0440\u043c\u0435\u043d, \u0420\u0438\u0432\u0435\u0441\u0442, \u0438 \u0434\u0440\u0443\u0433\u0438\u0435 \u00ab\u0410\u043b\u0433\u043e\u0440\u0438\u0442\u043c\u044b: \u043f\u043e\u0441\u0442\u0440\u043e\u0435\u043d\u0438\u0435 \u0438 \u0430\u043d\u0430\u043b\u0438\u0437\u00bb<\/li>\n<li>\u041b\u0438\u043f\u043f\u043c\u0430\u043d \u00ab\u041e\u0441\u043d\u043e\u0432\u044b \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u043d\u0430 \u0421++\u00bb<\/li>\n<li>Scott Meyers. Effective C++. More Effective C++. Effective STL<\/li>\n<li>Herb Sutter \u00abExceptional C++\u00bb \u00abMore Exceptional C++\u00bb<\/li>\n<\/ul>\n<\/div>\n<\/div>\n<p>  <i>\u0417\u0430 \u0432\u0441\u0435\u043c\u0438 \u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u044f\u043c\u0438 \u0441\u043f\u0438\u0441\u043a\u0430 \u0432\u0430\u043a\u0430\u043d\u0441\u0438\u0439 \u043c\u043e\u0436\u043d\u043e \u0441\u043b\u0435\u0434\u0438\u0442\u044c <a href=\"http:\/\/company.yandex.ru\/job\/vacancies\/?city=msk\">\u0437\u0434\u0435\u0441\u044c<\/a>.<\/i>    \t<\/p>\n<div class=\"clear\"><\/div>\n<\/p><\/div>\n<p> \u0441\u0441\u044b\u043b\u043a\u0430 \u043d\u0430 \u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b \u0441\u0442\u0430\u0442\u044c\u0438 <a href=\"http:\/\/habrahabr.ru\/company\/yandex\/blog\/206234\/\"> http:\/\/habrahabr.ru\/company\/yandex\/blog\/206234\/<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<div class=\"content html_format\">   \t\u041e\u0442\u043a\u0440\u044b\u0442\u044b\u0435 \u0432\u0430\u043a\u0430\u043d\u0441\u0438\u0438 \u043d\u0430 \u0434\u043e\u043b\u0436\u043d\u043e\u0441\u0442\u044c \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0430 \u0432 \u042f\u043d\u0434\u0435\u043a\u0441\u0435 \u0435\u0441\u0442\u044c \u0432\u0441\u0435\u0433\u0434\u0430. \u041a\u043e\u043c\u043f\u0430\u043d\u0438\u044f \u0440\u0430\u0437\u0432\u0438\u0432\u0430\u0435\u0442\u0441\u044f \u0438 \u0445\u043e\u0440\u043e\u0448\u0438\u0445 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0441\u0442\u043e\u0432 \u043d\u0435 \u0445\u0432\u0430\u0442\u0430\u0435\u0442 \u043f\u043e\u0441\u0442\u043e\u044f\u043d\u043d\u043e. \u0418 \u043f\u0440\u0435\u0442\u0435\u043d\u0434\u0435\u043d\u0442\u043e\u0432 \u043d\u0430 \u044d\u0442\u0438 \u0434\u043e\u043b\u0436\u043d\u043e\u0441\u0442\u0438 \u0442\u043e\u0436\u0435 \u0445\u043e\u0442\u044c \u043e\u0442\u0431\u0430\u0432\u043b\u044f\u0439. \u0413\u043b\u0430\u0432\u043d\u0430\u044f \u0441\u043b\u043e\u0436\u043d\u043e\u0441\u0442\u044c \u2013 \u043e\u0442\u043e\u0431\u0440\u0430\u0442\u044c \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u043f\u043e\u0434\u0445\u043e\u0434\u044f\u0449\u0438\u0445 \u043a\u0430\u043d\u0434\u0438\u0434\u0430\u0442\u043e\u0432. \u0418 \u0432 \u044d\u0442\u043e\u043c \u043f\u043b\u0430\u043d\u0435 \u042f\u043d\u0434\u0435\u043a\u0441 \u043c\u0430\u043b\u043e \u0447\u0435\u043c \u043e\u0442\u043b\u0438\u0447\u0430\u0435\u0442\u0441\u044f \u043e\u0442 \u0431\u043e\u043b\u044c\u0448\u0438\u043d\u0441\u0442\u0432\u0430 \u043a\u0440\u0443\u043f\u043d\u044b\u0445 IT-\u043a\u043e\u043c\u043f\u0430\u043d\u0438\u0439. \u0422\u0430\u043a \u0447\u0442\u043e \u0431\u0430\u0437\u043e\u0432\u044b\u0435 \u043f\u0440\u0438\u043d\u0446\u0438\u043f\u044b, \u043e\u043f\u0438\u0441\u044b\u0432\u0430\u0435\u043c\u044b\u0435 \u0432 \u044d\u0442\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0435, \u043c\u043e\u0433\u0443\u0442 \u0431\u044b\u0442\u044c \u043f\u0440\u0438\u043c\u0435\u043d\u0438\u043c\u044b \u043d\u0435 \u0442\u043e\u043b\u044c\u043a\u043e \u043a \u042f\u043d\u0434\u0435\u043a\u0441\u0443. <\/p>\n<p>  \u041e\u0434\u043d\u0430\u043a\u043e \u0441\u0442\u043e\u0438\u0442 \u043e\u0433\u043e\u0432\u043e\u0440\u0438\u0442\u044c\u0441\u044f, \u0447\u0442\u043e \u0441\u0442\u0430\u0442\u044c\u044f \u0432\u0441\u0435 \u0436\u0435 \u043f\u0440\u043e \u043f\u043e\u0434\u0431\u043e\u0440 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u043e\u0432. \u0422.\u0435. \u0441\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u043e \u0442\u0435\u0445 \u0432\u043e\u0441\u044c\u043c\u0438\u0434\u0435\u0441\u044f\u0442\u0438 \u043f\u0440\u043e\u0446\u0435\u043d\u0442\u043e\u0432 \u0441\u043e\u0442\u0440\u0443\u0434\u043d\u0438\u043a\u043e\u0432, \u043d\u0430 \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u0434\u0435\u0440\u0436\u0438\u0442\u0441\u044f \u043c\u0430\u0441\u0441\u043e\u0432\u0430\u044f \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0430. \u0427\u0430\u0441\u0442\u043e \u043c\u044b \u043d\u0430\u043d\u0438\u043c\u0430\u0435\u043c \u043b\u044e\u0434\u0435\u0439 \u043d\u0430 \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u044c\u043d\u044b\u0435 \u0432\u0430\u043a\u0430\u043d\u0441\u0438\u0438: \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u043e\u0432 \u0441\u0438\u0441\u0442\u0435\u043c \u043a\u043e\u043c\u043f\u044c\u044e\u0442\u0435\u0440\u043d\u043e\u0433\u043e \u0437\u0440\u0435\u043d\u0438\u044f, \u043b\u0438\u043d\u0433\u0432\u0438\u0441\u0442\u043e\u0432, \u044d\u043a\u0441\u043f\u0435\u0440\u0442\u043e\u0432 \u043f\u043e \u043c\u0430\u0448\u0438\u043d\u043d\u043e\u043c\u0443 \u043e\u0431\u0443\u0447\u0435\u043d\u0438\u044e. \u0412 \u044d\u0442\u043e\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u0444\u043e\u0440\u043c\u0430\u0442 \u0441\u043e\u0431\u0435\u0441\u0435\u0434\u043e\u0432\u0430\u043d\u0438\u044f \u043c\u043e\u0436\u0435\u0442 \u0437\u0430\u043c\u0435\u0442\u043d\u043e \u043e\u0442\u043b\u0438\u0447\u0430\u0442\u044c\u0441\u044f.<\/p>\n<p>  <a href=\"http:\/\/habrahabr.ru\/company\/yandex\/blog\/206234\/\"><img decoding=\"async\" src=\"http:\/\/habr.habrastorage.org\/post_images\/8db\/d9b\/c69\/8dbd9bc695f98c2ac16fe0755f4c07f0.jpg\" alt=\"image\"\/><\/a>  <\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[],"tags":[],"class_list":["post-206234","post","type-post","status-publish","format-standard","hentry"],"_links":{"self":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/206234","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=206234"}],"version-history":[{"count":0,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/206234\/revisions"}],"wp:attachment":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=206234"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=206234"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=206234"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}