{"id":168469,"date":"2013-10-08T19:05:02","date_gmt":"2013-10-08T15:05:02","guid":{"rendered":"http:\/\/savepearlharbor.com\/?p=168469"},"modified":"-0001-11-30T00:00:00","modified_gmt":"-0001-11-29T21:00:00","slug":"","status":"publish","type":"post","link":"https:\/\/savepearlharbor.com\/?p=168469","title":{"rendered":"<span class=\"post_title\">\u0411\u0440\u0443\u0442\u0444\u043e\u0440\u0441 \u0433\u043e\u043b\u043e\u0432\u043e\u043b\u043e\u043c\u043a\u0438 \u00ab\u041a\u0438\u0442\u0430\u0439\u0441\u043a\u0438\u0435 \u0448\u0430\u0448\u043a\u0438\u00bb<\/span>"},"content":{"rendered":"<div class=\"content html_format\">\n<h4>\u041f\u0440\u0435\u0434\u044b\u0441\u0442\u043e\u0440\u0438\u044f<\/h4>\n<p>  \u0427\u0442\u043e\u0431\u044b \u043b\u0435\u0442\u043e\u043c \u0434\u0435\u0440\u0436\u0430\u0442\u044c \u043c\u043e\u0437\u0433 \u0432 \u0442\u043e\u043d\u0443\u0441\u0435 \u044f \u0441\u043a\u0430\u0447\u0430\u043b \u0441\u0435\u0431\u0435 \u0441\u0431\u043e\u0440\u043d\u0438\u043a \u0433\u043e\u043b\u043e\u0432\u043e\u043b\u043e\u043c\u043e\u043a. \u041f\u043e \u043d\u0430\u0447\u0430\u043b\u0443 \u0437\u0430\u0434\u0430\u043d\u0438\u044f \u0431\u044b\u043b\u0438 \u0434\u043e\u0432\u043e\u043b\u044c\u043d\u043e \u043f\u0440\u043e\u0441\u0442\u044b\u043c\u0438 \u0438 \u043d\u0435 \u043e\u0441\u043e\u0431\u043e \u0442\u0440\u0435\u0431\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u044b\u043c\u0438 \u043a \u043f\u0440\u043e\u044f\u0432\u043b\u0435\u043d\u0438\u044e \u043b\u043e\u0433\u0438\u043a\u0438, \u043d\u043e \u043f\u043e \u0445\u043e\u0434\u0443 \u0438\u0433\u0440\u044b \u0447\u0443\u0432\u0441\u0442\u0432\u043e\u0432\u0430\u043b\u043e\u0441\u044c \u043d\u0430\u0440\u0430\u0441\u0442\u0430\u044e\u0449\u0435\u0435 \u0443\u0441\u043b\u043e\u0436\u043d\u0435\u043d\u0438\u0435.<br \/>  \u0412 \u043a\u0430\u043a\u043e\u0439-\u0442\u043e \u043c\u043e\u043c\u0435\u043d\u0442 \u044f \u0437\u0430\u0441\u0442\u0440\u044f\u043b \u043d\u0430 \u0433\u043e\u043b\u043e\u0432\u043e\u043b\u043e\u043c\u043a\u0435 \u043f\u043e\u0434 \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u0435\u043c \u00ab\u041a\u0438\u0442\u0430\u0439\u0441\u043a\u0438\u0435 \u0448\u0430\u0448\u043a\u0438\u00bb. \u0420\u0435\u0434\u043a\u0438\u0435 \u043f\u043e\u0442\u0443\u0433\u0438 \u0440\u0435\u0448\u0438\u0442\u044c \u0435\u0451 \u0441\u0432\u043e\u0438\u043c\u0438 \u0441\u0438\u043b\u0430\u043c\u0438 \u043d\u0435 \u043f\u0440\u0438\u043d\u043e\u0441\u0438\u043b\u0438 \u043e\u0441\u043e\u0431\u044b\u0445 \u043f\u043b\u043e\u0434\u043e\u0432 \u043d\u0430 \u043f\u0440\u043e\u0442\u044f\u0436\u0435\u043d\u0438\u0435 \u0434\u043e\u043b\u0433\u043e\u0433\u043e \u0432\u0440\u0435\u043c\u0435\u043d\u0438 \u0438 \u0432 \u0438\u0442\u043e\u0433\u0435 \u044f \u043e\u0442\u043b\u043e\u0436\u0438\u043b \u0441\u0432\u043e\u0438 \u043c\u0443\u043a\u0438 \u0441 \u0440\u0435\u0448\u0435\u043d\u0438\u0435\u043c \u0434\u043e \u043b\u0443\u0447\u0448\u0438\u0445 \u0432\u0440\u0435\u043c\u0435\u043d.<br \/>  \u0417\u0430\u043a\u043e\u043d\u0447\u0438\u043b\u0430\u0441\u044c \u0437\u0438\u043c\u043d\u044f\u044f \u0441\u0435\u0441\u0441\u0438\u044f, \u0430 \u0434\u043e \u043d\u0430\u0447\u0430\u043b\u0430 \u0443\u0447\u0435\u0431\u044b \u0435\u0449\u0435 \u043f\u0430\u0440\u0430 \u043d\u0435\u0434\u0435\u043b\u044c \u2014 \u0447\u0435\u043c \u043d\u0435 \u00ab\u043b\u0443\u0447\u0448\u0438\u0435 \u0432\u0440\u0435\u043c\u0435\u043d\u0430\u00bb? \u042f \u0437\u0430\u0433\u043b\u044f\u043d\u0443\u043b \u0432 \u0438\u043d\u0442\u0435\u0440\u043d\u0435\u0442, \u0434\u0430\u0431\u044b \u043f\u0440\u043e\u0432\u0435\u0440\u0438\u0442\u044c \u0435\u0441\u0442\u044c \u043b\u0438 \u0443 \u0434\u0430\u043d\u043d\u043e\u0439 \u0433\u043e\u043b\u043e\u0432\u043e\u043b\u043e\u043c\u043a\u0438 \u0432\u043e\u043e\u0431\u0449\u0435 \u0445\u043e\u0442\u044c \u043a\u0430\u043a\u043e\u0435-\u043d\u0438\u0431\u0443\u0434\u044c \u0440\u0435\u0448\u0435\u043d\u0438\u0435, \u0438 \u043f\u0435\u0440\u0432\u044b\u0435 \u0436\u0435 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u044b \u043f\u043e\u0438\u0441\u043a\u043e\u0432\u043e\u0433\u043e \u0437\u0430\u043f\u0440\u043e\u0441\u0430 \u0443\u0431\u0435\u0434\u0438\u043b\u0438 \u043c\u0435\u043d\u044f \u0432 \u0442\u043e\u043c, \u0447\u0442\u043e \u043e\u043d\u043e \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u0435\u0442. <br \/>  \u042f \u043d\u0435 \u0441\u0442\u0430\u043b \u043f\u043e\u0434\u0433\u043b\u044f\u0434\u044b\u0432\u0430\u0442\u044c \u0432 \u043f\u0440\u043e\u0445\u043e\u0436\u0434\u0435\u043d\u0438\u0435, \u043c\u043d\u0435 \u0445\u043e\u0442\u0435\u043b\u043e\u0441\u044c \u0434\u043e\u0439\u0442\u0438 \u0434\u043e \u043d\u0435\u0433\u043e \u0441\u0432\u043e\u0438\u043c\u0438 \u0441\u0438\u043b\u0430\u043c\u0438 \u2014 \u0438\u043b\u0438 \u0441\u0430\u043c\u043e\u043c\u0443 \u0440\u0435\u0448\u0438\u0442\u044c, \u0438\u043b\u0438 \u043d\u0430\u043f\u0438\u0441\u0430\u0442\u044c \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0443, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u043d\u0430\u0439\u0434\u0435\u0442 \u043c\u043d\u0435 \u044d\u0442\u043e \u0440\u0435\u0448\u0435\u043d\u0438\u0435. \u041e\u0434\u043d\u0430\u043a\u043e \u043d\u0430\u043f\u0440\u044f\u043c\u0443\u044e \u043f\u0440\u0438\u043c\u0435\u043d\u0438\u0442\u044c \u0441\u0438\u043b\u0443 \u043c\u043e\u0437\u0433\u0430 \u043c\u043d\u0435 \u0442\u0430\u043a \u0438 \u043d\u0435 \u0443\u0434\u0430\u043b\u043e\u0441\u044c, \u044f \u044f\u0432\u043d\u043e \u0443\u043f\u0443\u0441\u043a\u0430\u043b \u0438\u0437 \u0432\u0438\u0434\u0443 \u0447\u0442\u043e-\u0442\u043e \u043f\u0440\u0438\u043d\u0446\u0438\u043f\u0438\u0430\u043b\u044c\u043d\u043e \u0432\u0430\u0436\u043d\u043e\u0435 \u0434\u043b\u044f \u043d\u0430\u0445\u043e\u0436\u0434\u0435\u043d\u0438\u044f \u0440\u0435\u0448\u0435\u043d\u0438\u044f. <br \/>   \u2014 \u00ab\u041d\u0443 \u0432\u0441\u0451, \u043f\u0443\u0441\u0442\u044c \u044d\u0442\u0430 \u0433\u043e\u043b\u043e\u0432\u043e\u043b\u043e\u043c\u043a\u0430 \u043f\u043e\u0433\u043e\u0432\u043e\u0440\u0438\u0442 \u0441 \u043c\u043e\u0438\u043c \u043c\u043d\u043e\u0433\u043e\u044f\u0434\u0435\u0440\u043d\u044b\u043c \u0434\u0440\u0443\u0433\u043e\u043c!\u00bb \u2014 \u043f\u0440\u043e\u043d\u0435\u0441\u043b\u043e\u0441\u044c \u0443 \u043c\u0435\u043d\u044f \u0432 \u0433\u043e\u043b\u043e\u0432\u0435, \u0438 \u044f \u0441\u0435\u043b \u0437\u0430 \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u0438\u0435 \u0431\u0440\u0443\u0442\u0444\u043e\u0440\u0441\u0430.<\/p>\n<p>  <a name=\"habracut\"><\/a><b>\u041f\u043e\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430 \u0437\u0430\u0434\u0430\u0447\u0438<\/b><br \/>  \u041f\u043e\u043b\u0435 \u2014 33 \u044f\u0447\u0435\u0439\u043a\u0438, 32 \u0438\u0437 \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u0437\u0430\u043d\u044f\u0442\u044b \u0444\u0438\u0448\u043a\u0430\u043c\u0438. \u0426\u0435\u043b\u044c \u2014 \u0441\u044a\u0435\u0441\u0442\u044c \u043c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u043e \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0435 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0444\u0438\u0448\u0435\u043a(\u0434\u043e\u043b\u0436\u043d\u0430 \u043e\u0441\u0442\u0430\u0442\u044c\u0441\u044f \u043b\u0438\u0448\u044c \u043e\u0434\u043d\u0430). \u0415\u0441\u0442\u044c \u043c\u043e\u0436\u043d\u043e \u0442\u043e\u043b\u044c\u043a\u043e \u043f\u043e \u0432\u0435\u0440\u0442\u0438\u043a\u0430\u043b\u0438 \u0438 \u0433\u043e\u0440\u0438\u0437\u043e\u043d\u0442\u0430\u043b\u0438 \u0442\u0430\u043a\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c:<br \/>  <img decoding=\"async\" src=\"http:\/\/habrastorage.org\/storage2\/771\/6a7\/a3e\/7716a7a3efaaa5f520dd850d88d89de9.png\"\/><br \/>  <i>\u041f\u0440\u0438\u043c\u0435\u0440 \u0445\u043e\u0434\u0430<\/i><\/p>\n<p>  <b>\u041f\u0435\u0440\u0432\u0430\u044f \u043f\u043e\u043f\u044b\u0442\u043a\u0430 \u0440\u0435\u0448\u0435\u043d\u0438\u044f<\/b><br \/>  \u041f\u0435\u0440\u0432\u044b\u0439 \u0431\u0440\u0443\u0442\u0444\u043e\u0440\u0441 \u0431\u044b\u043b \u043d\u0430\u043f\u0438\u0441\u0430\u043d \u0431\u0435\u0437 \u0443\u0447\u0435\u0442\u0430 \u0442\u0435\u043e\u0440\u0438\u0438 \u0437\u0430 \u043f\u043e\u043b-\u0447\u0430\u0441\u0430, \u0435\u0433\u043e \u0438\u0434\u0435\u044f \u0437\u0430\u043a\u043b\u044e\u0447\u0430\u043b\u0430\u0441\u044c \u0432 \u0440\u0435\u043a\u0443\u0440\u0441\u0438\u0432\u043d\u043e\u043c \u0441\u043f\u0443\u0441\u043a\u0435 \u043f\u043e \u0434\u0435\u0440\u0435\u0432\u0443 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u044b\u0445 \u0445\u043e\u0434\u043e\u0432, \u0441 \u0440\u0430\u043d\u0434\u043e\u043c\u043d\u044b\u043c \u0432\u044b\u0431\u043e\u0440\u043e\u043c \u043a\u0430\u0436\u0434\u043e\u0433\u043e \u043f\u043e\u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u0433\u043e \u0445\u043e\u0434\u0430.<br \/>  <img decoding=\"async\" src=\"http:\/\/habrastorage.org\/storage2\/4bf\/063\/84f\/4bf06384f89e86697601bc404ab174b5.jpg\"\/><br \/>  <i>\u041f\u0441\u0435\u0432\u0434\u043e \u0431\u043b\u043e\u043a-\u0441\u0445\u0435\u043c\u0430 \u043f\u0435\u0440\u0432\u043e\u0439 \u0432\u0435\u0440\u0441\u0438\u0438<\/i><\/p>\n<p>  \u0418 \u0432\u0441\u0451 \u044d\u0442\u043e \u0447\u0443\u0434\u043e \u0432\u0435\u0440\u0442\u0435\u043b\u043e\u0441\u044c \u0432 \u0446\u0438\u043a\u043b\u0435. \u0412 \u043f\u0435\u0440\u0432\u044b\u0435 15 \u0441\u0435\u043a\u0443\u043d\u0434 \u043e\u043d \u0434\u0430\u0436\u0435 \u0441\u043c\u043e\u0433 \u043d\u0430\u0439\u0442\u0438 \u0445\u043e\u0434 \u0440\u0435\u0448\u0435\u043d\u0438\u044f \u043f\u0440\u0438\u0432\u043e\u0434\u044f\u0449\u0438\u0439 \u043a 3 \u043e\u0441\u0442\u0430\u044e\u0449\u0438\u043c\u0441\u044f \u0444\u0438\u0448\u043a\u0430\u043c \u043d\u0430 \u043f\u043e\u043b\u0435, \u0430 \u0432 \u043f\u043e\u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0443\u044e \u043c\u0438\u043d\u0443\u0442\u0443 \u0438 \u043a 2! \u041d\u043e \u0440\u0430\u0434\u043e\u0441\u0442\u044c \u0431\u044b\u043b\u0430 \u043d\u0435 \u0434\u043e\u043b\u0433\u043e\u0439, \u0438\u0431\u043e \u0440\u0430\u043d\u0434\u043e\u043c, \u043f\u0443\u0441\u0442\u044c \u0434\u0430\u0436\u0435 \u043f\u0441\u0435\u0432\u0434\u043e, \u0442\u0440\u0443\u0434\u043d\u043e \u043f\u0440\u0435\u0434\u0441\u043a\u0430\u0437\u0443\u0435\u043c \u2014 \u0437\u0430 \u043d\u043e\u0447\u044c \u0440\u0430\u0431\u043e\u0442\u044b \u043e\u043d \u043d\u0435 \u0441\u043c\u043e\u0433 \u0431\u043e\u043b\u0435\u0435 \u043f\u0440\u0438\u0431\u043b\u0438\u0437\u0438\u0442\u044c\u0441\u044f \u043a \u0440\u0435\u0448\u0435\u043d\u0438\u044e. \u0421\u0442\u0430\u043d\u043e\u0432\u0438\u043b\u043e\u0441\u044c \u043e\u0447\u0435\u0432\u0438\u0434\u043d\u0430 \u043f\u043e\u0442\u0440\u0435\u0431\u043d\u043e\u0441\u0442\u044c \u0440\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0435\u043d\u0438\u044f \u0432\u043e\u043f\u0440\u043e\u0441\u0430 \u0441 \u0442\u0435\u043e\u0440\u0435\u0442\u0438\u0447\u0435\u0441\u043a\u043e\u0439 \u0442\u043e\u0447\u043a\u0438 \u0437\u0440\u0435\u043d\u0438\u044f.<\/p>\n<p>  <b>\u041d\u0435\u043c\u043d\u043e\u0433\u043e \u0442\u0435\u043e\u0440\u0438\u0438<\/b><br \/>  \u0415\u0441\u043b\u0438 \u0434\u0435\u0439\u0441\u0442\u0432\u0443\u044e\u0449\u0435\u0435 \u0438\u0433\u0440\u043e\u0432\u043e\u0435 \u043f\u043e\u043b\u0435 \u0432\u044b\u0442\u044f\u043d\u0443\u0442\u044c \u0432 \u0441\u0442\u0440\u043e\u043a\u0443, \u0442\u043e \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u0441\u044f 33 \u0440\u0430\u0437\u0440\u044f\u0434\u043d\u043e\u0435 \u0434\u0432\u043e\u0438\u0447\u043d\u043e\u0435 \u0447\u0438\u0441\u043b\u043e, \u0433\u0434\u0435 1 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u0435\u0442 \u044f\u0447\u0435\u0439\u043a\u0435 \u0441 \u0444\u0438\u0448\u043a\u043e\u0439, \u0430 0 \u043f\u0443\u0441\u0442\u043e\u0439 \u044f\u0447\u0435\u0439\u043a\u0435. \u0421\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0435\u043d\u043d\u043e \u0432\u0441\u0435\u0433\u043e \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0439 \u0443 \u043f\u043e\u043b\u044f \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u043d\u0435 \u0431\u043e\u043b\u044c\u0448\u0435 2^33 \u2014 2, \u0442\u0430\u043a \u043a\u0430\u043a \u043f\u043e \u043f\u0440\u0430\u0432\u0438\u043b\u0430\u043c \u043f\u043e\u043b\u0435 \u043d\u0435 \u043c\u043e\u0436\u0435\u0442 \u0441\u0442\u0430\u0442\u044c \u043f\u043e\u043b\u043d\u043e\u0441\u0442\u044c\u044e \u043f\u0443\u0441\u0442\u044b\u043c(\u0432\u0441\u0435\u0433\u0434\u0430 \u043e\u0441\u0442\u0430\u0435\u0442\u0441\u044f \u0445\u043e\u0442\u044f \u0431\u044b \u043e\u0434\u043d\u0430 \u0444\u0438\u0448\u043a\u0430), \u0438\u043b\u0438 \u043f\u043e\u043b\u043d\u043e\u0441\u0442\u044c\u044e \u0437\u0430\u043f\u043e\u043b\u043d\u0435\u043d\u043d\u044b\u043c \u0444\u0438\u0448\u043a\u0430\u043c\u0438(\u0438\u0445 \u0434\u0430\u0435\u0442\u0441\u044f 32 \u0438\u0437\u043d\u0430\u0447\u0430\u043b\u044c\u043d\u043e \u0438 \u0431\u043e\u043b\u044c\u0448\u0435 \u0443\u0436\u0435 \u0441\u0442\u0430\u0442\u044c \u043d\u0435 \u043c\u043e\u0436\u0435\u0442). <br \/>  \u042d\u0442\u043e \u043c\u043e\u0436\u043d\u043e \u0438\u043d\u0442\u0435\u0440\u043f\u0440\u0435\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043a\u0430\u043a \u0442\u043e, \u0447\u0442\u043e \u0445\u043e\u0434\u043e\u0432 \u0443 \u043d\u0430\u0441 \u0432\u0441\u0435\u0433\u043e \u043d\u0435 \u0431\u043e\u043b\u0435\u0435 8 589 934 590, \u0447\u0442\u043e \u0432\u043f\u043e\u043b\u043d\u0435 \u043f\u0435\u0440\u0435\u0431\u0438\u0440\u0430\u0435\u043c\u043e \u043d\u0430 \u0434\u043e\u043c\u0430\u0448\u043d\u0435\u043c \u043a\u043e\u043c\u043f\u044c\u044e\u0442\u0435\u0440\u0435. \u0422\u043e \u0435\u0441\u0442\u044c \u043d\u0443\u0436\u043d\u043e \u043f\u0440\u043e\u0441\u0442\u043e \u043d\u0430\u043f\u0438\u0441\u0430\u0442\u044c \u0447\u0435\u0441\u0442\u043d\u044b\u0439 \u043f\u043e\u043b\u043d\u044b\u0439 \u043f\u0435\u0440\u0435\u0431\u043e\u0440.<\/p>\n<p>  <b>\u0412\u0442\u043e\u0440\u0430\u044f \u043f\u043e\u043f\u044b\u0442\u043a\u0430 \u0440\u0435\u0448\u0435\u043d\u0438\u044f<\/b><br \/>  \u0418\u0437\u0431\u0430\u0432\u0438\u0432\u0448\u0438\u0441\u044c \u043e\u0442 \u0440\u0430\u043d\u0434\u043e\u043c\u043d\u043e\u0439 \u0441\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u044e\u0449\u0435\u0439 \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c \u0431\u0440\u0443\u0442\u0444\u043e\u0440\u0441\u0430 \u043f\u0440\u0438\u043d\u044f\u043b \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0439 \u0432\u0438\u0434:<br \/>  <img decoding=\"async\" src=\"http:\/\/habrastorage.org\/storage2\/224\/b1c\/d69\/224b1cd693834f99a51375c0c9a87081.jpg\"\/><br \/>  <i>\u041f\u0441\u0435\u0432\u0434\u043e \u0431\u043b\u043e\u043a-\u0441\u0445\u0435\u043c\u0430 \u0432\u0442\u043e\u0440\u043e\u0439 \u0432\u0435\u0440\u0441\u0438\u0438<\/i><\/p>\n<p>  \u042d\u0442\u043e\u0442 \u0431\u0440\u0443\u0442\u0444\u043e\u0440\u0441 \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u043d\u044b\u0439 \u043d\u0430 C++ \u043d\u0430 \u0432\u0441\u0435\u0445 \u0438\u0437\u0432\u0435\u0441\u0442\u043d\u044b\u0445 \u043c\u043d\u0435 \u043e\u043f\u0442\u0438\u043c\u0438\u0437\u0430\u0446\u0438\u044f\u0445 \u0432 \u0440\u0435\u043b\u0438\u0437-\u0432\u0435\u0440\u0441\u0438\u0438 \u0440\u0430\u0431\u043e\u0442\u0430\u043b \u0434\u043e\u0432\u043e\u043b\u044c\u043d\u043e \u0440\u0435\u0437\u0432\u043e, \u043f\u0435\u0440\u0435\u0431\u0438\u0440\u0430\u044f \u0447\u0443\u0442\u044c \u043b\u0438 \u043d\u0435 200 000 \u0445\u043e\u0434\u043e\u0432 \u0432 \u0441\u0435\u043a\u0443\u043d\u0434\u0443, \u0430 \u0437\u043d\u0430\u0447\u0438\u0442 \u0434\u043b\u044f \u043f\u043e\u043b\u043d\u043e\u0433\u043e \u043f\u0435\u0440\u0435\u0431\u043e\u0440\u0430 \u043f\u043e\u043d\u0430\u0434\u043e\u0431\u0438\u043b\u043e\u0441\u044c \u0431\u044b (2^33 \u2014 2) \/ (2 * 10^5) \u2248 12 \u0447\u0430\u0441\u043e\u0432. \u041d\u043e \u0442\u0430\u043a \u043a\u0430\u043a \u0447\u0435\u0442\u044b\u0440\u0435 \u0432\u0430\u0440\u0438\u0430\u043d\u0442\u0430 \u043f\u0435\u0440\u0432\u043e\u0433\u043e \u0445\u043e\u0434\u0430 \u043e\u0447\u0435\u0432\u0438\u0434\u043d\u043e \u0432\u0435\u0434\u0443\u0442 \u043a \u043b\u0438\u0448\u043d\u0438\u043c \u043f\u043e\u0432\u0442\u043e\u0440\u0435\u043d\u0438\u044f\u043c, \u0442\u043e \u043c\u044b \u0434\u0435\u043b\u0430\u0435\u043c \u043f\u0435\u0440\u0432\u044b\u0439 \u0445\u043e\u0434 \u0437\u0430 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0443, \u0442\u0430\u043a\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c \u043d\u0430 3\/4 \u0443\u043c\u0435\u043d\u044c\u0448\u0430\u044f \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0445\u043e\u0434\u043e\u0432 \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0442\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044f \u043f\u0435\u0440\u0435\u0431\u0440\u0430\u0442\u044c(\u0430 \u0437\u043d\u0430\u0447\u0438\u0442 \u0438 \u0432\u0440\u0435\u043c\u044f \u0440\u0430\u0431\u043e\u0442\u044b). \u041f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0430 \u0437\u0430\u043d\u0438\u043c\u0430\u043b\u0430 \u0432 \u043e\u043f\u0435\u0440\u0430\u0442\u0438\u0432\u043d\u043e\u0439 \u043f\u0430\u043c\u044f\u0442\u0438 2.6 \u041c\u0411 \u0438 \u0434\u043e\u0432\u043e\u043b\u044c\u043d\u043e \u0431\u044b\u0441\u0442\u0440\u043e \u043f\u0435\u0440\u0435\u0431\u0440\u0430\u043b\u0430 2 * 10^7 \u0445\u043e\u0434\u043e\u0432 \u0438 \u0432\u0441\u0435 \u0431\u044b \u043d\u0438\u0447\u0435\u0433\u043e, \u043d\u043e \u043e\u0442\u0432\u0435\u0442\u0430 \u0434\u043e \u0441\u0438\u0445 \u043f\u043e\u0440 \u043d\u0435 \u0431\u044b\u043b\u043e. <br \/>  \u0421\u0430\u043c\u043e\u0435 \u0432\u0435\u0441\u0435\u043b\u044c\u0435 \u0436\u0435 \u0431\u044b\u043b\u043e \u0432 \u0442\u043e\u043c, \u0447\u0442\u043e \u043d\u0430 \u044d\u0442\u0438\u0445 \u0434\u0432\u0443\u0445 \u043c\u0438\u043b\u043b\u0438\u0430\u0440\u0434\u0430\u0445 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0430 \u043f\u043e\u043a\u0430\u0437\u044b\u0432\u0430\u043b\u0430 \u0447\u0442\u043e \u043f\u0435\u0440\u0435\u0431\u0438\u0440\u0430\u0435\u0442 \u043f\u043e\u0434\u0432\u0435\u0442\u0432\u044c \u0434\u0435\u0440\u0435\u0432\u0430 \u0432\u0441\u0435\u0445 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u044b\u0445 \u0445\u043e\u0434\u043e\u0432 \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u043e\u0431\u0440\u0430\u0437\u0443\u0435\u0442\u0441\u044f \u043f\u043e\u0441\u043b\u0435 12 \u0445\u043e\u0434\u0430! \u0427\u0442\u043e-\u0442\u043e \u0442\u0443\u0442 \u043d\u0435 \u0442\u0430\u043a, \u043b\u0438\u0431\u043e \u043e\u0448\u0438\u0431\u043a\u0430 \u0432 \u0431\u0440\u0443\u0442\u0444\u043e\u0440\u0441\u0435, \u043b\u0438\u0431\u043e \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u044e\u0442 \u0442\u0430\u043a\u0438\u0435 \u0440\u0430\u0437\u043b\u0438\u0447\u043d\u044b\u0435 \u0445\u043e\u0434\u044b, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043f\u0440\u0438\u0432\u043e\u0434\u044f\u0442 \u043f\u043e\u043b\u0435 \u043a \u043e\u0434\u043d\u043e\u043c\u0443 \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u044e, \u043f\u0440\u0438\u0447\u0435\u043c \u044d\u0442\u0438\u0445 \u043f\u0435\u0440\u0435\u0441\u0435\u0447\u0435\u043d\u0438\u0439 \u0434\u043e\u043b\u0436\u043d\u043e \u0431\u044b\u0442\u044c \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u043c\u043d\u043e\u0433\u043e.<br \/>  \u041c\u043e\u0438 \u043e\u043f\u0430\u0441\u0435\u043d\u0438\u044f \u043f\u043e\u0434\u0442\u0432\u0435\u0440\u0434\u0438\u043b\u0438\u0441\u044c \u043f\u0440\u043e\u0441\u0442\u0435\u0439\u0448\u0435\u0439 \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u043e\u0439 \u2014 \u0440\u0430\u0437\u043d\u044b\u0435 \u0445\u043e\u0434\u044b \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u043c\u043e\u0433\u043b\u0438 \u043f\u0440\u0438\u0432\u043e\u0434\u0438\u0442\u044c \u043f\u043e\u043b\u0435 \u0432 \u043e\u0434\u043d\u043e \u0438 \u0442\u043e \u0436\u0435 \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0435.<\/p>\n<p>  <b>\u0422\u0440\u0435\u0442\u044c\u044f \u043f\u043e\u043f\u044b\u0442\u043a\u0430 \u0440\u0435\u0448\u0435\u043d\u0438\u044f<\/b><br \/>  \u0417\u043d\u0430\u0447\u0438\u0442 \u043d\u0443\u0436\u043d\u043e \u0441\u043e\u0445\u0440\u0430\u043d\u044f\u0442\u044c \u0440\u0430\u0441\u0441\u0447\u0438\u0442\u0430\u043d\u043d\u044b\u0435 \u043f\u043e\u043b\u044f \u0438 \u043f\u0440\u0438 \u043e\u0431\u043d\u0430\u0440\u0443\u0436\u0435\u043d\u0438\u0435 \u043f\u043e\u0432\u0442\u043e\u0440\u0430 \u0441\u0440\u0430\u0437\u0443 \u0441\u043e\u043e\u0431\u0449\u0430\u0442\u044c, \u0447\u0442\u043e \u0438\u0445 \u0441\u0447\u0438\u0442\u0430\u0442\u044c \u043d\u0435 \u043d\u0443\u0436\u043d\u043e.<br \/>  <img decoding=\"async\" src=\"http:\/\/habrastorage.org\/storage2\/340\/3c2\/6b2\/3403c26b29e301768787a8bf71a73865.jpg\"\/><br \/>  <i>\u041f\u0441\u0435\u0432\u0434\u043e \u0431\u043b\u043e\u043a-\u0441\u0445\u0435\u043c\u0430 \u0442\u0440\u0435\u0442\u044c\u0435\u0439 \u0432\u0435\u0440\u0441\u0438\u0438 \u0441 \u0437\u0430\u043f\u043e\u043c\u0438\u043d\u0430\u043d\u0438\u0435\u043c \u0440\u0430\u0441\u0441\u0447\u0438\u0442\u0430\u043d\u043d\u044b\u0445 \u043f\u043e\u043b\u0435\u0439<\/i><\/p>\n<p>  \u0422\u043e\u043b\u044c\u043a\u043e \u0432\u043e\u0442 \u044d\u0442\u043e \u0434\u0435\u043b\u043e \u043e\u043a\u0430\u0437\u0430\u043b\u043e\u0441\u044c \u0432\u0435\u0441\u044c\u043c\u0430 \u043d\u0430\u043a\u043b\u0430\u0434\u043d\u044b\u043c, \u0435\u0441\u043b\u0438 \u0445\u0440\u0430\u043d\u0438\u0442\u044c \u043f\u0440\u043e\u0441\u0447\u0438\u0442\u0430\u043d\u043d\u044b\u0435 \u043f\u043e\u043b\u044f \u0432 \u043e\u043f\u0435\u0440\u0430\u0442\u0438\u0432\u043d\u043e\u0439 \u043f\u0430\u043c\u044f\u0442\u0438, \u0442\u043e \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u0442\u0441\u044f \u0432 \u0438\u0434\u0435\u0430\u043b\u044c\u043d\u043e\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u0447\u0442\u043e \u043d\u0430\u043c \u043f\u043e\u0442\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044f 33 \u0431\u0438\u0442\u0430 \u043d\u0430 \u043e\u0434\u043d\u043e \u043f\u043e\u043b\u0435, \u0430 \u0438\u0445 \u0434\u0430\u0436\u0435 \u0441 \u0443\u0447\u0435\u0442\u043e\u043c \u0441\u0434\u0435\u043b\u0430\u043d\u043d\u043e\u0433\u043e \u043f\u0435\u0440\u0432\u043e\u0433\u043e \u0445\u043e\u0434\u0430 (2^33 \u2014 2) \/ 4, \u0442\u043e \u0435\u0441\u0442\u044c \u043f\u0430\u043c\u044f\u0442\u0438 \u043f\u043e\u043d\u0430\u0434\u043e\u0431\u0438\u0442\u0441\u044f \u043d\u0430 \u0445\u0440\u0430\u043d\u0435\u043d\u0438\u0435 \u0432\u0441\u0435\u0445 \u043f\u0440\u043e\u0441\u0447\u0438\u0442\u0430\u043d\u043d\u044b\u0445 \u043f\u043e\u043b\u0435\u0439 ((2^33 \u2014 2) \/ 4) * 33) \/ (8 * 2^20) \u2248 8.5 \u0413\u0411, \u0430 \u0443 \u043c\u0435\u043d\u044f \u0432\u0441\u0435\u0433\u043e 4, \u0438\u0437 \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u044f \u043c\u043e\u0433\u0443 \u0434\u0430\u0442\u044c \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0435 \u043b\u0438\u0448\u044c 2. \u0427\u0442\u043e \u0436\u0435 \u0434\u0435\u043b\u0430\u0442\u044c? \u041e\u0441\u043e\u0431\u0435\u043d\u043d\u043e \u0435\u0441\u043b\u0438 \u0443\u0447\u0435\u0441\u0442\u044c, \u0447\u0442\u043e 33 \u0431\u0438\u0442\u0430 \u044d\u0442\u043e \u0442\u0435\u043e\u0440\u0435\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0439 \u043c\u0438\u043d\u0438\u043c\u0443\u043c \u0442\u0440\u0435\u0431\u0443\u0435\u043c\u044b\u0439 \u043d\u0430 \u0438\u0433\u0440\u043e\u0432\u043e\u0435 \u043f\u043e\u043b\u0435, \u0430 \u043d\u0430 \u043f\u0440\u0430\u043a\u0442\u0438\u043a\u0435 \u0438\u0445 \u0432\u0435\u0434\u044c \u043f\u043e\u0441\u0442\u043e\u044f\u043d\u043d\u043e \u043d\u0443\u0436\u043d\u043e \u0441\u0440\u0430\u0432\u043d\u0438\u0432\u0430\u0442\u044c, \u0434\u0430 \u0438 \u043d\u0435 \u043a\u0430\u043a-\u0442\u043e \u0442\u0430\u043c, \u0430 \u043f\u043e\u0431\u0438\u0442\u043e\u0432\u043e! \u041c\u043e\u0436\u043d\u043e \u0431\u044b\u043b\u043e \u043f\u043e\u0438\u0441\u043a\u0430\u0442\u044c \u0441\u0438\u0441\u0442\u0435\u043c\u043d\u044b\u0435 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u0434\u043b\u044f \u043f\u043e\u0431\u0438\u0442\u043e\u0432\u043e\u0433\u043e \u0441\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u044f \u0434\u0432\u0443\u0445 \u0443\u0447\u0430\u0441\u0442\u043a\u043e\u0432 \u043f\u0430\u043c\u044f\u0442\u0438, \u0438\u043b\u0438 \u043f\u043e\u043f\u0440\u043e\u0431\u043e\u0432\u0430\u0442\u044c \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u044d\u0442\u043e \u0430\u0441\u0441\u0435\u043c\u0431\u043b\u0435\u0440\u043d\u044b\u043c\u0438 \u0432\u0441\u0442\u0430\u0432\u043a\u0430\u043c\u0438. \u041d\u043e \u0432\u0441\u0435 \u0440\u0430\u0432\u043d\u043e \u043d\u0443\u0436\u043d\u043e \u0432\u0435\u0434\u044c \u0431\u0443\u0434\u0435\u0442 \u0445\u0440\u0430\u043d\u0438\u0442\u044c \u0435\u0449\u0435 \u0438 \u0443\u043a\u0430\u0437\u0430\u0442\u0435\u043b\u0438 \u043d\u0430 \u044d\u0442\u0438 \u043f\u043e\u043b\u044f, \u0442\u043e \u0435\u0441\u0442\u044c \u0432 33 \u0431\u0438\u0442\u0430 \u0438\u0433\u0440\u043e\u0432\u043e\u0433\u043e \u043f\u043e\u043b\u044f + 4 \u0431\u0430\u0439\u0442\u0430 \u0443\u043a\u0430\u0437\u0430\u0442\u0435\u043b\u044c(\u043d\u0430 \u043c\u043e\u0435\u0439 \u043c\u0430\u0448\u0438\u043d\u0435) \u043d\u0430 \u043d\u0438\u0445 + \u0432\u044b\u0440\u0430\u0432\u043d\u0438\u0432\u0430\u043d\u0438\u0435 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440 \u0432 \u043f\u0430\u043c\u044f\u0442\u0438 \u2014 \u043d\u0443 \u043d\u0438\u043a\u0430\u043a \u043d\u0435 \u0443\u043b\u043e\u0436\u0438\u0442\u044c\u0441\u044f \u0434\u0430\u0436\u0435 \u0441 \u043e\u043f\u0435\u0440\u0430\u0442\u0438\u0432\u043a\u043e\u0439 \u0432 16 \u0413\u0411. \u041c\u043e\u0436\u043d\u043e \u0431\u044b\u043b\u043e \u0431\u044b \u043f\u043e\u043f\u0440\u043e\u0431\u043e\u0432\u0430\u0442\u044c \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u0445\u0440\u0430\u043d\u0435\u043d\u0438\u0435 \u043d\u0430 \u0434\u0438\u0441\u043a\u0435, \u043d\u043e \u0442\u043e\u0433\u0434\u0430 \u0441\u043a\u043e\u0440\u043e\u0441\u0442\u044c \u043f\u0435\u0440\u0435\u0431\u043e\u0440\u0430 \u0443\u043f\u0430\u043b\u0430 \u0431\u044b \u043d\u0430 \u043d\u0435\u043f\u043e\u0437\u0432\u043e\u043b\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0439 \u0443\u0440\u043e\u0432\u0435\u043d\u044c\u2026<br \/>  \u0412 \u0438\u0442\u043e\u0433\u0435 \u0431\u044b\u043b\u043e \u0440\u0435\u0448\u0435\u043d\u043e \u043e\u043f\u0440\u043e\u0431\u043e\u0432\u0430\u0442\u044c \u0437\u043b\u043e\u0441\u0447\u0430\u0441\u0442\u043d\u044b\u0439 std::vector bool \u0434\u043b\u044f \u0445\u0440\u0430\u043d\u0435\u043d\u0438\u044f \u0440\u0430\u0441\u0441\u0447\u0438\u0442\u0430\u043d\u043d\u044b\u0445 \u043f\u043e\u043b\u0435\u0439 \u0438 \u043c\u043e\u043b\u0438\u0442\u044c\u0441\u044f \u043e \u0442\u043e\u043c, \u0447\u0442\u043e\u0431\u044b \u0445\u043e\u0434 \u0440\u0435\u0448\u0435\u043d\u0438\u044f \u0431\u044b\u043b \u043d\u0430\u0439\u0434\u0435\u043d \u0434\u043e \u0442\u043e\u0433\u043e, \u043a\u0430\u043a \u0438\u0441\u0441\u044f\u043a\u043d\u0435\u0442 \u043f\u0430\u043c\u044f\u0442\u044c.<br \/>  \u041d\u043e\u0432\u044b\u0439 \u0431\u0440\u0443\u0442\u0444\u043e\u0440\u0441 \u043f\u0435\u0440\u0435\u0431\u0438\u0440\u0430\u043b \u043e\u043a\u043e\u043b\u043e 7000 \u0445\u043e\u0434\u043e\u0432 \u0432 \u0441\u0435\u043a\u0443\u043d\u0434\u0443, \u043d\u043e \u044d\u0442\u043e\u0433\u043e \u043e\u043a\u0430\u0437\u0430\u043b\u043e\u0441\u044c \u0432\u043f\u043e\u043b\u043d\u0435 \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u2014 \u043f\u043e \u0441\u0447\u0430\u0441\u0442\u043b\u0438\u0432\u043e\u043c\u0443 \u0441\u0442\u0435\u0447\u0435\u043d\u0438\u044e \u043e\u0431\u0441\u0442\u043e\u044f\u0442\u0435\u043b\u044c\u0441\u0442\u0432 \u044f \u0432\u044b\u043b\u043e\u0432\u0438\u043b \u0430\u0436 4 \u0440\u0435\u0448\u0435\u043d\u0438\u044f \u0434\u043e \u0442\u043e\u0433\u043e \u043a\u0430\u043a \u0432\u044b\u0441\u043a\u043e\u0447\u0438\u043b\u0430 \u043f\u043b\u0430\u0448\u043a\u0430 \u00abMemory out\u00bb. \u041f\u0430\u043c\u044f\u0442\u044c \u0438\u0441\u0441\u044f\u043a\u043b\u0430 \u043a\u043e\u0433\u0434\u0430 \u043e\u043d \u043f\u0435\u0440\u0435\u0431\u0440\u0430\u043b \u043f\u044f\u0442\u044c \u043c\u0438\u043b\u043b\u0438\u043e\u043d\u043e\u0432 \u0445\u043e\u0434\u043e\u0432 \u0438 \u043d\u0430\u0445\u043e\u0434\u0438\u043b\u0441\u044f \u043f\u0440\u0438 \u044d\u0442\u043e\u043c \u043d\u0430 \u043f\u043e\u0434\u0432\u0435\u0442\u0432\u0438 \u0434\u0435\u0440\u0435\u0432\u0430 \u0432\u0441\u0435\u0445 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u044b\u0445 \u0445\u043e\u0434\u043e\u0432 \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u043e\u0431\u0440\u0430\u0437\u0443\u0435\u0442\u0441\u044f \u043f\u043e\u0441\u043b\u0435 5 \u0445\u043e\u0434\u0430 \u043e\u0442 \u043d\u0430\u0447\u0430\u043b\u0430 \u0438\u0433\u0440\u044b. <\/p>\n<p>  <b>\u0417\u0430\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435<\/b><br \/>  \u0412\u0440\u043e\u0434\u0435 \u0433\u043e\u043b\u043e\u0432\u043e\u043b\u043e\u043c\u043a\u0430 \u0438 \u0440\u0435\u0448\u0435\u043d\u0430 \u0441\u0432\u043e\u0438\u043c\u0438 \u0441\u0438\u043b\u0430\u043c\u0438, \u043d\u043e \u043d\u0435\u0434\u043e\u0441\u043a\u0430\u0437\u0430\u043d\u043d\u043e\u0441\u0442\u044c \u043e\u0441\u0442\u0430\u043b\u0430\u0441\u044c. \u0420\u0435\u0448\u0435\u043d\u0438\u0435 \u0432\u043f\u043e\u043b\u043d\u0435 \u043c\u043e\u0433\u043b\u043e \u0438 \u043d\u0435 \u043d\u0430\u0445\u043e\u0434\u0438\u0442\u0441\u044f \u0432 \u043f\u0435\u0440\u0435\u0431\u0440\u0430\u043d\u043d\u043e\u043c \u043c\u043d\u043e\u0439 \u0434\u0438\u0430\u043f\u0430\u0437\u043e\u043d\u0435, \u0442\u043e\u0433\u0434\u0430 \u0431\u044b \u043f\u0440\u0438\u0448\u043b\u043e\u0441\u044c \u0434\u0443\u043c\u0430\u0442\u044c \u0434\u043e\u043b\u044c\u0448\u0435, \u0438 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e \u0443\u0436\u0435 \u0441\u043e\u0432\u0441\u0435\u043c \u0432 \u0438\u043d\u043e\u043c \u043d\u0430\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435.<br \/>  PS \u041f\u0435\u0440\u0435\u0434 \u043f\u0443\u0431\u043b\u0438\u043a\u0430\u0446\u0438\u0435\u0439 \u043d\u0430\u0448\u0435\u043b \u043d\u0430 \u0445\u0430\u0431\u0440\u0435 \u043f\u043e\u0441\u0442 <a href=\"http:\/\/habrahabr.ru\/post\/166223\/\">\u041f\u0440\u0438\u043c\u0435\u043d\u044f\u0435\u043c \u043d\u0430 \u043f\u0440\u0430\u043a\u0442\u0438\u043a\u0435 \u0437\u043d\u0430\u043d\u0438\u044f, \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u043d\u044b\u0435 \u043d\u0430 \u043a\u0443\u0440\u0441\u0435 MIT 6.00x (edx.org)<\/a> \u0447\u0430\u0441\u0442\u044c \u043a\u043e\u0442\u043e\u0440\u043e\u0433\u043e \u043f\u043e\u0432\u0435\u0441\u0442\u0432\u043e\u0432\u0430\u043b\u0430 \u043e \u0440\u0435\u0448\u0435\u043d\u0438\u0435 \u044d\u0442\u043e\u0439 \u0436\u0435 \u0437\u0430\u0434\u0430\u0447\u0438, \u043d\u043e \u0441\u043f\u0440\u0430\u0432\u0435\u0434\u043b\u0438\u0432\u043e\u0441\u0442\u0438 \u0440\u0430\u0434\u0438 \u0437\u0430\u043c\u0435\u0447\u0443 \u0447\u0442\u043e \u043c\u044b \u0441 \u0430\u0432\u0442\u043e\u0440\u043e\u043c \u0442\u043e\u0433\u043e \u043f\u043e\u0441\u0442\u0430 \u043f\u043e\u0448\u043b\u0438 \u0440\u0430\u0437\u043d\u044b\u043c\u0438 \u043f\u0443\u0442\u044f\u043c\u0438.<br \/>  PPS \u0412\u043e\u0437\u043c\u043e\u0436\u043d\u043e \u043d\u0430\u043b\u0438\u0447\u0438\u0435 \u043e\u0448\u0438\u0431\u043e\u043a \u0438 \u043d\u0435\u0442\u043e\u0447\u043d\u043e\u0441\u0442\u0435\u0439, \u0431\u0443\u0434\u0443 \u043f\u0440\u0438\u0437\u043d\u0430\u0442\u0435\u043b\u0435\u043d \u0437\u0430 \u043f\u043e\u043f\u0440\u0430\u0432\u043a\u0438 \u0438 \u0441\u043e\u0432\u0435\u0442\u044b.<\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">\u0418\u0442\u043e\u0433\u043e\u0432\u044b\u0439 \u043a\u043e\u0434 \u0431\u0440\u0443\u0442\u0444\u043e\u0440\u0441\u0430 \u043d\u0430 C++<\/b><\/p>\n<div class=\"spoiler_text\">\n<pre><code class=\"cpp\">#include &lt;iostream&gt; #include &lt;fstream&gt; #include &lt;list&gt; #include &lt;string&gt; #include &lt;set&gt; #include &lt;vector&gt;  namespace China_Checkers { \t\/\/ Size of the game field \tunsigned x, y;  \t\/\/ Class of game field for storage \tclass Field \t{ \t\tstatic const unsigned size;  \t\tstd::vector&lt;bool&gt; *field; \t\tbool is_copy;  \tpublic: \t\tField(bool** f) \t\t{ \t\t\tfield = new std::vector&lt;bool&gt;(size); \t\t\t\/\/ Transforming game field as matrix to vector \t\t\tfor (unsigned i = 0; i &lt; x; ++i) \t\t\t{ \t\t\t\tfor (unsigned j = 0; j &lt; y; ++j) \t\t\t\t{ \t\t\t\t\tif ((i &gt; 1 && i &lt; 5) && (j &lt; 2 || j &gt; 4)) \t\t\t\t\t\tfield-&gt;push_back(f[i][j]); \t\t\t\t\telse if (j &gt; 1 && j &lt; 5) \t\t\t\t\t\tfield-&gt;push_back(f[i][j]); \t\t\t\t} \t\t\t} \t\t}  \t\tField(Field& f) \t\t{ \t\t\tf.is_copy = true; \t\t\tfield = f.field; \t\t}  \t\tField &operator=(Field& f) \t\t{ \t\t\tf.is_copy = true; \t\t\tfield = f.field; \t\t}  \t\tfriend bool operator==(const Field& m1, const Field& m2) \t\t{ \t\t\tif (m1.field == m2.field) return true; \t\t\tif ((*m1.field) != (*m2.field)) return false; \t\t\treturn true; \t\t}  \t\tfriend bool operator&lt;(const Field& m1, const Field& m2) \t\t{ \t\t\tif ((*m1.field) &lt; (*m2.field)) return true; \t\t\treturn false; \t\t} \t\t \t\t~Field() \t\t{ \t\t\tif (is_copy) \t\t\t\treturn;  \t\t\tdelete field; \t\t} \t}; \tconst unsigned Field::size = 33;  \tclass China_Checkers_Hack \t{ \t\ttypedef bool**                              field   ; \/\/ Type of a game field \t\ttypedef std::pair&lt;unsigned, unsigned&gt;       position; \/\/ Pair of x, y \t\ttypedef std::pair&lt;position, position&gt;       move    ; \/\/ Type for a move (start position, end position) \t\ttypedef std::pair&lt;field, std::list&lt;move*&gt;*&gt; step    ; \/\/ Type for description one step of the bruteforce  \t\tint              win_condition; \/\/ Condition scoring \t\tstd::list&lt;field&gt; path_to_win  ; \/\/ Path to win \t\tstd::set&lt;Field&gt;  fld_buf      ; \/\/ We checked these fields \t\t \t\t\/\/ To output a field in a stream \t\tfriend std::ostream &operator&lt;&lt;(std::ostream &out, const field fld) \t\t{ \t\t\tif (fld == nullptr) \t\t\t{ \t\t\t\tstd::cout &lt;&lt; &quot;Attempt to output nullptr field&quot; &lt;&lt; std::endl; \t\t\t\tsystem(&quot;pause&quot;); \t\t\t\treturn out; \t\t\t}  \t\t\tfor (unsigned j = 0; j &lt; x ; ++j) \t\t\t{ \t\t\t\tfor (unsigned i = 0; i &lt; y; ++i) \t\t\t\t{ \t\t\t\t\tif (((i &lt; 2) || (i &gt; 4)) && ((j &lt; 2) || (j &gt; 4))) \t\t\t\t\t\tout &lt;&lt; '*' &lt;&lt; ' '; \t\t\t\t\telse \t\t\t\t\t\tout &lt;&lt; fld[i][j] &lt;&lt; ' '; \t\t\t\t} \t\t\t\tout &lt;&lt; '\\n' &lt;&lt; std::flush; \t\t\t}  \t\t\treturn out; \t\t}  \t\t\/\/ To display a some message \t\tvoid message(const std::string msg = &quot;&quot;) \t\t{ \t\t\tstd::cout &lt;&lt; &quot;Message: &quot; &lt;&lt; msg &lt;&lt; std::endl; \t\t\tsystem(&quot;pause&quot;); \t\t}  \t\t\/\/ Returns a pointer to a memory was allocated for a field, or nullptr in error case \t\tfield alloc_mem_for_field() \t\t{ \t\t\tfield fld = nullptr;  \t\t\ttry \t\t\t{ \t\t\t\tfld = new bool*[x]; \t\t\t\tfor (unsigned i = 0; i &lt; x; ++i) \t\t\t\t{ \t\t\t\t\tfld[i] = new bool[y]; \t\t\t\t} \t\t\t} \t\t\tcatch(std::bad_alloc) \t\t\t{ \t\t\t\tfld = nullptr; \t\t\t\tmessage(&quot;Memory out in alloc_mem_for_field()&quot;); \t\t\t}  \t\t\treturn fld; \t\t}  \t\t\/\/ Copy a field and returns a reference on it, or nullptr in error case \t\tfield copy_field(field fld_dest, const field fld_source) \t\t{ \t\t\tif (fld_dest == nullptr) \t\t\t{ \t\t\t\tif ((fld_dest = alloc_mem_for_field()) != nullptr) \t\t\t\t{ \t\t\t\t\tfor (unsigned i = 0; i &lt; x; ++i) \t\t\t\t\t{ \t\t\t\t\t\tfor (unsigned j = 0; j &lt; y; ++j) \t\t\t\t\t\t{ \t\t\t\t\t\t\tfld_dest[i][j] = fld_source[i][j]; \t\t\t\t\t\t} \t\t\t\t\t} \t\t\t\t} \t\t\t} \t\t\telse \t\t\t{ \t\t\t\tfor (unsigned i = 0; i &lt; x; ++i) \t\t\t\t{ \t\t\t\t\tfor (unsigned j = 0; j &lt; y; ++j) \t\t\t\t\t{ \t\t\t\t\t\tfld_dest[i][j] = fld_source[i][j]; \t\t\t\t\t} \t\t\t\t} \t\t\t} \t\t\treturn fld_dest; \t\t}  \t\t\/\/ First initialize of a field \t\tvoid init_field(field &fld) \t\t{\t \t\t\tfor (unsigned i = 0; i &lt; x; ++i) \t\t\t{ \t\t\t\tfor (unsigned j = 0; j &lt; y; ++j) \t\t\t\t{ \t\t\t\t\tif ( \t\t\t\t\t\t(((i == 0) || (i == 1)) || ((i == (x - 1)) || (i == (x - 2)))) \t\t\t\t\t\t&& \t\t\t\t\t\t(((j == 0) || (j == 1)) || ((j == (y - 1)) || (j == (y - 2)))) \t\t\t\t\t\t) \t\t\t\t\t\tfld[i][j] = (bool)2; \/\/ Not used \t\t\t\t\telse \t\t\t\t\t\tfld[i][j] = 1; \t\t\t\t} \t\t\t} \t\t\t \t\t\t\/\/ Make the first move to reduce space of moves on 3\/4 \t\t\tfld[(x \/ 2)][(y \/ 2)] = 1; \t\t\tfld[(x \/ 2)][(y \/ 2 - 1)] = 0; \t\t\tfld[(x \/ 2)][(y \/ 2) - 2] = 0; \t\t}  \t\t\/\/ Returns num of chips on field \t\tint IsWin(const field &fld) \t\t{ \t\t\tint k = 0;  \t\t\tfor (unsigned i = 0; i &lt; x; ++i) \t\t\t{ \t\t\t\tfor (unsigned j = 0; j &lt; y; ++j) \t\t\t\t{ \t\t\t\t\tif ( \t\t\t\t\t\t(i &lt; 2 || i &gt; 4) \t\t\t\t\t\t&& \t\t\t\t\t\t(j &lt; 2 || j &gt; 4) \t\t\t\t\t   ) \t\t\t\t\t   continue; \t\t\t\t\t \t\t\t\t\tif (fld[i][j] == 1) \t\t\t\t\t\t++k; \t\t\t\t} \t\t\t}  \t\t\treturn k; \t\t}  \t\t\/\/ Free alloc memory  \t\tvoid free_mem_from_field(field &fld) \t\t{ \t\t\tif (fld == nullptr) \t\t\t{ \t\t\t\tmessage(&quot;Attempt to delete nullptr in free_mem_from_field()&quot;); \t\t\t\treturn; \t\t\t}  \t\t\tfor (unsigned i = 0; i &lt; y; ++i) \t\t\t{ \t\t\t\tdelete[] fld[i]; \t\t\t} \t\t\tdelete[] fld;  \t\t\tfld = nullptr; \t\t}  \t\t\/\/ Returns true if a cell is empty \t\tbool IsCell(const field &fld, const int lx, const int ly) \t\t{ \t\t\tif ( \t\t\t\t(lx &gt; 0 && ly &gt; 0)  \t\t\t\t&&  \t\t\t\t(lx &lt; (int)x && ly &lt; (int)y) \t\t\t\t&& \t\t\t\t(!((lx &lt; 2 || lx &gt; 4) && (ly &lt; 2 || ly &gt; 4))) \t\t\t   ) \t\t\t{ \t\t\t\tif (fld[(unsigned)lx][(unsigned)ly] == 0) return true; \t\t\t} \t\t\treturn false; \t\t} \t\t \t\t\/\/ Returns true if a cell has a chip \t\tbool IsChip(const field &fld, const int lx, const int ly) \t\t{ \t\t\tif ( \t\t\t\t(lx &gt; 0 && ly &gt; 0)  \t\t\t\t&&  \t\t\t\t(lx &lt; (int)x && ly &lt; (int)y) \t\t\t\t&& \t\t\t\t(!((lx &lt; 2 || lx &gt; 4) && (ly &lt; 2 || ly &gt; 4))) \t\t\t   ) \t\t\t{ \t\t\t\tif (fld[(unsigned)lx][(unsigned)ly] == 1) return true; \t\t\t}  \t\t\treturn false; \t\t} \t\t \t\t\/\/ Returns a pointer on a list of all moves for the current field \t\t\/\/ or nullptr if moves doesn't exist \t\tstd::list&lt;move*&gt; *get_all_moves(const field &fld) \t\t{ \t\t\tstd::list&lt;move*&gt; *buf = nullptr;  \t\t\ttry \t\t\t{ \t\t\t\tbuf = new std::list&lt;move*&gt;;  \t\t\t\tmove* m = nullptr; \t\t\t\tfor (int i = 0; (unsigned)i &lt; x; ++i) \t\t\t\t{ \t\t\t\t\tfor (int j = 0; (unsigned)j &lt; y; ++j) \t\t\t\t\t{ \t\t\t\t\t\tif ((fld[i][j] == 1) && (!(((i &lt; 2) || (i &gt; 4)) && ((j &lt; 2) || (j &gt; 4))))) \t\t\t\t\t\t{ \t\t\t\t\t\t\tif (IsCell(fld, i + 2, j)) \t\t\t\t\t\t\t{ \t\t\t\t\t\t\t\tif (IsChip(fld, i + 1, j)) \t\t\t\t\t\t\t\t{ \t\t\t\t\t\t\t\t\tm = new move();  \t\t\t\t\t\t\t\t\tm-&gt;first.first = i; \t\t\t\t\t\t\t\t\tm-&gt;first.second = j; \t\t\t\t\t\t\t\t\tm-&gt;second.first = i + 2; \t\t\t\t\t\t\t\t\tm-&gt;second.second = j;  \t\t\t\t\t\t\t\t\tbuf-&gt;push_back(m); \t\t\t\t\t\t\t\t} \t\t\t\t\t\t\t} \t\t\t\t\t\t\tif (IsCell(fld, i - 2, j)) \t\t\t\t\t\t\t{ \t\t\t\t\t\t\t\tif (IsChip(fld, i - 1, j)) \t\t\t\t\t\t\t\t{ \t\t\t\t\t\t\t\t\tm = new move();  \t\t\t\t\t\t\t\t\tm-&gt;first.first = i; \t\t\t\t\t\t\t\t\tm-&gt;first.second = j; \t\t\t\t\t\t\t\t\tm-&gt;second.first = i - 2; \t\t\t\t\t\t\t\t\tm-&gt;second.second = j;  \t\t\t\t\t\t\t\t\tbuf-&gt;push_back(m); \t\t\t\t\t\t\t\t} \t\t\t\t\t\t\t} \t\t\t\t\t\t\tif (IsCell(fld, i, j + 2)) \t\t\t\t\t\t\t{ \t\t\t\t\t\t\t\tif (IsChip(fld, i, j + 1)) \t\t\t\t\t\t\t\t{ \t\t\t\t\t\t\t\t\tm = new move();  \t\t\t\t\t\t\t\t\tm-&gt;first.first = i; \t\t\t\t\t\t\t\t\tm-&gt;first.second = j; \t\t\t\t\t\t\t\t\tm-&gt;second.first = i; \t\t\t\t\t\t\t\t\tm-&gt;second.second = j + 2;  \t\t\t\t\t\t\t\t\tbuf-&gt;push_back(m); \t\t\t\t\t\t\t\t} \t\t\t\t\t\t\t} \t\t\t\t\t\t\tif (IsCell(fld, i, j - 2)) \t\t\t\t\t\t\t{ \t\t\t\t\t\t\t\tif (IsChip(fld, i, j - 1)) \t\t\t\t\t\t\t\t{ \t\t\t\t\t\t\t\t\tm = new move();  \t\t\t\t\t\t\t\t\tm-&gt;first.first = i; \t\t\t\t\t\t\t\t\tm-&gt;first.second = j; \t\t\t\t\t\t\t\t\tm-&gt;second.first = i; \t\t\t\t\t\t\t\t\tm-&gt;second.second = j - 2;  \t\t\t\t\t\t\t\t\tbuf-&gt;push_back(m); \t\t\t\t\t\t\t\t} \t\t\t\t\t\t\t} \t\t\t\t\t\t} \t\t\t\t\t} \t\t\t\t}  \t\t\t\tif (buf-&gt;size() == 0)  \t\t\t\t{ \t\t\t\t\tdelete buf; \t\t\t\t\tbuf = nullptr; \t\t\t\t} \t\t\t \t\t\t} \t\t\tcatch (std::bad_alloc) \t\t\t{ \t\t\t\tdelete buf; \t\t\t\tbuf = nullptr; \t\t\t\tmessage(&quot;Memory out in get_all_moves()&quot;); \t\t\t}  \t\t\treturn buf;  \t\t}\/\/*\/ \t\t \t\t\/\/ To make a move \t\tfield make_move(field fld, const move &mv) \t\t{ \t\t\tif (fld == nullptr) \t\t\t{ \t\t\t\tmessage(&quot;Attempt to move on empty field in make_move()&quot;); \t\t\t\treturn fld; \t\t\t}  \t\t\tif (mv.first.first != mv.second.first) \t\t\t{ \t\t\t\tif (mv.first.first &lt; mv.second.first) \t\t\t\t{ \t\t\t\t\tfld[mv.first.first + 1][mv.second.second] = 0; \t\t\t\t} \t\t\t\telse  \t\t\t\t\tfld[mv.first.first - 1][mv.second.second] = 0;  \t\t\t} \t\t\telse if (mv.first.second != mv.second.second) \t\t\t{ \t\t\t\tif (mv.first.second &lt; mv.second.second) \t\t\t\t{ \t\t\t\t\tfld[mv.first.first][mv.first.second + 1] = 0; \t\t\t\t} \t\t\t\telse  \t\t\t\t\tfld[mv.first.first][mv.first.second - 1] = 0; \t\t\t} \t\t\telse \t\t\t{ \t\t\t\tmessage(&quot;Move is incorrect, error in get_all_moves()&quot;); \t\t\t\treturn fld; \t\t\t}  \t\t\tfld[mv.first.first][mv.first.second] = 0; \t\t\tfld[mv.second.first][mv.second.second] = 1;  \t\t\treturn fld; \t\t} \t \t\t\/\/ Recursive passage all the moves \t\tvoid bruteforce(field fld) \t\t{ \t\t\tstatic bool display = false; \t\t\tstatic int lvl = 33; \t\t\tstatic time_t counter = 0;   \/\/ Num of checked field  \t\t\t++counter;  \t\t\t\/\/ Num 7000 is empirical \t\t\t\/\/ Once we get the conclusion of the 7000, it allows the processor \t\t\t\/\/ to be optimally loaded, and we see a progress \t\t\tif ((counter % 7000) == 0) \t\t\t{ \t\t\t\tdisplay = true; \t\t\t}  \t\t\tif ( counter &gt; 33 ) \t\t\t{ \t\t\t\tint ibuf = path_to_win.size(); \t\t\t\tif (lvl &gt; ibuf) lvl = ibuf; \t\t\t}  \t\t\tstd::list&lt;move*&gt; *b = get_all_moves(fld);  \t\t\t \t\t\tstep buf;  \t\t\tif (b != nullptr) \t\t\t{ \t\t\t\tbuf = step(fld, b); \t\t\t\tpath_to_win.push_back(fld); \t\t\t} \t\t\telse  \t\t\t{ \t\t\t\tint res = IsWin(fld); \t\t\t\tpath_to_win.push_back(fld);  \t\t\t\tif (display == true) \t\t\t\t{ \t\t\t\t\tsystem(&quot;cls&quot;); \t\t\t\t\tstd::cout &lt;&lt; &quot;Min level: &quot; &lt;&lt; lvl &lt;&lt; &quot;\\n&lt;&quot;  \t\t\t\t\t\t&lt;&lt; counter &lt;&lt; '&gt;' &lt;&lt; &quot;\\nCurrent result:\\n&quot; &lt;&lt; fld &lt;&lt; std::endl; \t\t\t\t\tdisplay = false; \t\t\t\t}  \t\t\t\tif (res == win_condition) \t\t\t\t{ \t\t\t\t\tstd::cout &lt;&lt; &quot;Num of checked fields: &quot; &lt;&lt; fld_buf.size() &lt;&lt; \t\t\t\t\t\t&quot;\\nSize of the path_to_win: &quot; &lt;&lt; path_to_win.size()  &lt;&lt; std::endl; \t\t\t\t\t \t\t\t\t\tstd::ofstream winpath_to_win(&quot;path_to_win.txt&quot;); \t\t\t\t\tif (winpath_to_win) \t\t\t\t\t{ \t\t\t\t\t\tfor (std::list&lt;field&gt;::const_iterator it = path_to_win.begin(); it != path_to_win.end(); ++it) \t\t\t\t\t\t{ \t\t\t\t\t\t\twinpath_to_win &lt;&lt; (*it) &lt;&lt; std::endl; \t\t\t\t\t\t} \t\t\t\t\t\twinpath_to_win.close(); \t\t\t\t\t} \t\t\t\t\tfor (std::list&lt;field&gt;::const_iterator it = path_to_win.begin(); it != path_to_win.end(); ++it) \t\t\t\t\t{ \t\t\t\t\t\tstd::cout &lt;&lt; (*it) &lt;&lt; std::endl; \t\t\t\t\t}  \t\t\t\t\tsystem(&quot;pause&quot;); \t\t\t\t} \t\t\t\tpath_to_win.pop_back(); \t\t\t\treturn; \t\t\t} \t\t \t\t\tfield fwithmove = nullptr; \t\t\tfor ( \t\t\t\tstd::list&lt;move*&gt;::iterator it = buf.second-&gt;begin(); \t\t\t\tit != buf.second-&gt;end(); \t\t\t\tfwithmove = nullptr, buf.second-&gt;pop_front(), it = buf.second-&gt;begin() \t\t\t\t) \t\t\t{ \t\t\t\tfwithmove = copy_field(fwithmove, buf.first); \t\t\t\t\/\/ Make move in copy of the buf.first field, \t\t\t\t\/\/ buf.first field not changed and use to copy in next iteration \t\t\t\tmake_move(fwithmove, *(*it)); \t\t\t\t \t\t\t\tField *f = new Field(fwithmove);  \t\t\t\tif (fld_buf.count(*f))  \t\t\t\t{ \t\t\t\t\tfree_mem_from_field(fwithmove); \t\t\t\t\tdelete (*it); \t\t\t\t\tcontinue; \t\t\t\t} \t\t\t\telse \t\t\t\t\tfld_buf.insert(*f);  \t\t\t\tdelete f;  \t\t\t\tbruteforce(fwithmove); \t\t\t\tfree_mem_from_field(fwithmove); \/\/ Free alloc memory for the fwithmove field, where we did move \t\t\t\tdelete (*it);                   \/\/ Free memory from under &quot;move&quot; in list&lt;move*&gt; which we did \t\t\t}  \t\t\tpath_to_win.pop_back(); \t\t\tdelete buf.second; \t\t}  \tpublic:  \t\tChina_Checkers_Hack(const int _x = 7, const int _y = 7, const int wincondition = 1) : win_condition(wincondition) \t\t{ \t\t\tx = _x; \t\t\ty = _y;  \t\t\tfield main_field;  \t\t\tif ((main_field = alloc_mem_for_field()) != nullptr) \t\t\t{ \t\t\t\tinit_field(main_field); \t\t\t\tbruteforce(main_field); \t\t\t\tfree_mem_from_field(main_field); \t\t\t} \t\t\telse \t\t\t\tmessage(&quot;Memory out, your computer gonna update RAM!&quot;); \t\t} \t\t~China_Checkers_Hack() \t\t{ \t\t\tfor (std::list&lt;field&gt;::iterator it = path_to_win.begin(); it != path_to_win.end(); ++it) \t\t\t{ \t\t\t\tfree_mem_from_field(*it); \t\t\t} \t\t} \t}; }  int main(int argc, char* argv[]) { \tChina_Checkers::China_Checkers_Hack bruteforce; \tsystem(&quot;pause&quot;); \treturn 0; } <\/code><\/pre>\n<p>  <\/div>\n<\/div>\n<div class=\"spoiler\"><b class=\"spoiler_title\">\u041f\u0440\u0438\u043c\u0435\u0440 \u043d\u0430\u0439\u0434\u0435\u043d\u043d\u043e\u0433\u043e \u0440\u0435\u0448\u0435\u043d\u0438\u044f<\/b><\/p>\n<div class=\"spoiler_text\">* * 1 1 1 * * <br \/>  * * 1 0 1 * * <br \/>  1 1 1 0 1 1 1 <br \/>  1 1 1 1 1 1 1 <br \/>  1 1 1 1 1 1 1 <br \/>  * * 1 1 1 * * <br \/>  * * 1 1 1 * * <\/p>\n<p>  * * 1 1 1 * * <br \/>  * * 1 0 1 * * <br \/>  1 0 0 1 1 1 1 <br \/>  1 1 1 1 1 1 1 <br \/>  1 1 1 1 1 1 1 <br \/>  * * 1 1 1 * * <br \/>  * * 1 1 1 * * <\/p>\n<p>  * * 1 1 1 * * <br \/>  * * 1 0 1 * * <br \/>  1 1 0 1 1 1 1 <br \/>  1 0 1 1 1 1 1 <br \/>  1 0 1 1 1 1 1 <br \/>  * * 1 1 1 * * <br \/>  * * 1 1 1 * * <\/p>\n<p>  * * 1 1 1 * * <br \/>  * * 1 0 1 * * <br \/>  0 0 1 1 1 1 1 <br \/>  1 0 1 1 1 1 1 <br \/>  1 0 1 1 1 1 1 <br \/>  * * 1 1 1 * * <br \/>  * * 1 1 1 * * <\/p>\n<p>  * * 1 1 1 * * <br \/>  * * 1 0 1 * * <br \/>  0 1 0 0 1 1 1 <br \/>  1 0 1 1 1 1 1 <br \/>  1 0 1 1 1 1 1 <br \/>  * * 1 1 1 * * <br \/>  * * 1 1 1 * * <\/p>\n<p>  * * 0 1 1 * * <br \/>  * * 0 0 1 * * <br \/>  0 1 1 0 1 1 1 <br \/>  1 0 1 1 1 1 1 <br \/>  1 0 1 1 1 1 1 <br \/>  * * 1 1 1 * * <br \/>  * * 1 1 1 * * <\/p>\n<p>  * * 0 1 1 * * <br \/>  * * 0 0 1 * * <br \/>  0 0 0 1 1 1 1 <br \/>  1 0 1 1 1 1 1 <br \/>  1 0 1 1 1 1 1 <br \/>  * * 1 1 1 * * <br \/>  * * 1 1 1 * * <\/p>\n<p>  * * 0 1 1 * * <br \/>  * * 0 0 1 * * <br \/>  0 0 0 1 1 1 1 <br \/>  1 1 0 0 1 1 1 <br \/>  1 0 1 1 1 1 1 <br \/>  * * 1 1 1 * * <br \/>  * * 1 1 1 * * <\/p>\n<p>  * * 0 1 1 * * <br \/>  * * 0 0 1 * * <br \/>  0 0 0 1 1 1 1 <br \/>  0 0 1 0 1 1 1 <br \/>  1 0 1 1 1 1 1 <br \/>  * * 1 1 1 * * <br \/>  * * 1 1 1 * * <\/p>\n<p>  * * 0 1 1 * * <br \/>  * * 0 0 1 * * <br \/>  0 0 0 1 1 1 1 <br \/>  0 0 1 0 1 1 1 <br \/>  1 1 0 0 1 1 1 <br \/>  * * 1 1 1 * * <br \/>  * * 1 1 1 * * <\/p>\n<p>  * * 0 1 1 * * <br \/>  * * 0 0 1 * * <br \/>  0 0 0 1 1 1 1 <br \/>  0 0 1 0 1 1 1 <br \/>  0 0 1 0 1 1 1 <br \/>  * * 1 1 1 * * <br \/>  * * 1 1 1 * * <\/p>\n<p>  * * 0 1 1 * * <br \/>  * * 0 0 1 * * <br \/>  0 0 0 1 1 1 1 <br \/>  0 0 1 1 0 0 1 <br \/>  0 0 1 0 1 1 1 <br \/>  * * 1 1 1 * * <br \/>  * * 1 1 1 * * <\/p>\n<p>  * * 0 1 1 * * <br \/>  * * 0 1 1 * * <br \/>  0 0 0 0 1 1 1 <br \/>  0 0 1 0 0 0 1 <br \/>  0 0 1 0 1 1 1 <br \/>  * * 1 1 1 * * <br \/>  * * 1 1 1 * * <\/p>\n<p>  * * 0 0 1 * * <br \/>  * * 0 0 1 * * <br \/>  0 0 0 1 1 1 1 <br \/>  0 0 1 0 0 0 1 <br \/>  0 0 1 0 1 1 1 <br \/>  * * 1 1 1 * * <br \/>  * * 1 1 1 * * <\/p>\n<p>  * * 0 0 1 * * <br \/>  * * 0 0 0 * * <br \/>  0 0 0 1 0 1 1 <br \/>  0 0 1 0 1 0 1 <br \/>  0 0 1 0 1 1 1 <br \/>  * * 1 1 1 * * <br \/>  * * 1 1 1 * * <\/p>\n<p>  * * 0 0 1 * * <br \/>  * * 0 0 0 * * <br \/>  0 0 0 1 1 0 0 <br \/>  0 0 1 0 1 0 1 <br \/>  0 0 1 0 1 1 1 <br \/>  * * 1 1 1 * * <br \/>  * * 1 1 1 * * <\/p>\n<p>  * * 0 0 1 * * <br \/>  * * 0 0 0 * * <br \/>  0 0 0 0 0 1 0 <br \/>  0 0 1 0 1 0 1 <br \/>  0 0 1 0 1 1 1 <br \/>  * * 1 1 1 * * <br \/>  * * 1 1 1 * * <\/p>\n<p>  * * 0 0 1 * * <br \/>  * * 0 0 0 * * <br \/>  0 0 0 0 0 1 1 <br \/>  0 0 1 0 1 0 0 <br \/>  0 0 1 0 1 1 0 <br \/>  * * 1 1 1 * * <br \/>  * * 1 1 1 * * <\/p>\n<p>  * * 0 0 1 * * <br \/>  * * 0 0 0 * * <br \/>  0 0 0 0 1 0 0 <br \/>  0 0 1 0 1 0 0 <br \/>  0 0 1 0 1 1 0 <br \/>  * * 1 1 1 * * <br \/>  * * 1 1 1 * * <\/p>\n<p>  * * 0 0 1 * * <br \/>  * * 0 0 1 * * <br \/>  0 0 0 0 0 0 0 <br \/>  0 0 1 0 0 0 0 <br \/>  0 0 1 0 1 1 0 <br \/>  * * 1 1 1 * * <br \/>  * * 1 1 1 * * <\/p>\n<p>  * * 0 0 0 * * <br \/>  * * 0 0 0 * * <br \/>  0 0 0 0 1 0 0 <br \/>  0 0 1 0 0 0 0 <br \/>  0 0 1 0 1 1 0 <br \/>  * * 1 1 1 * * <br \/>  * * 1 1 1 * * <\/p>\n<p>  * * 0 0 0 * * <br \/>  * * 0 0 0 * * <br \/>  0 0 0 0 1 0 0 <br \/>  0 0 1 0 1 0 0 <br \/>  0 0 1 0 0 1 0 <br \/>  * * 1 1 0 * * <br \/>  * * 1 1 1 * * <\/p>\n<p>  * * 0 0 0 * * <br \/>  * * 0 0 0 * * <br \/>  0 0 0 0 0 0 0 <br \/>  0 0 1 0 0 0 0 <br \/>  0 0 1 0 1 1 0 <br \/>  * * 1 1 0 * * <br \/>  * * 1 1 1 * * <\/p>\n<p>  * * 0 0 0 * * <br \/>  * * 0 0 0 * * <br \/>  0 0 0 0 0 0 0 <br \/>  0 0 1 0 0 0 0 <br \/>  0 0 1 1 0 0 0 <br \/>  * * 1 1 0 * * <br \/>  * * 1 1 1 * * <\/p>\n<p>  * * 0 0 0 * * <br \/>  * * 0 0 0 * * <br \/>  0 0 0 0 0 0 0 <br \/>  0 0 1 0 0 0 0 <br \/>  0 1 0 0 0 0 0 <br \/>  * * 1 1 0 * * <br \/>  * * 1 1 1 * * <\/p>\n<p>  * * 0 0 0 * * <br \/>  * * 0 0 0 * * <br \/>  0 0 0 0 0 0 0 <br \/>  0 0 1 0 0 0 0 <br \/>  0 1 1 0 0 0 0 <br \/>  * * 0 1 0 * * <br \/>  * * 0 1 1 * * <\/p>\n<p>  * * 0 0 0 * * <br \/>  * * 0 0 0 * * <br \/>  0 0 0 0 0 0 0 <br \/>  0 0 0 0 0 0 0 <br \/>  0 1 0 0 0 0 0 <br \/>  * * 1 1 0 * * <br \/>  * * 0 1 1 * * <\/p>\n<p>  * * 0 0 0 * * <br \/>  * * 0 0 0 * * <br \/>  0 0 0 0 0 0 0 <br \/>  0 0 0 0 0 0 0 <br \/>  0 1 0 0 0 0 0 <br \/>  * * 1 1 0 * * <br \/>  * * 1 0 0 * * <\/p>\n<p>  * * 0 0 0 * * <br \/>  * * 0 0 0 * * <br \/>  0 0 0 0 0 0 0 <br \/>  0 0 0 0 0 0 0 <br \/>  0 1 1 0 0 0 0 <br \/>  * * 0 1 0 * * <br \/>  * * 0 0 0 * * <\/p>\n<p>  * * 0 0 0 * * <br \/>  * * 0 0 0 * * <br \/>  0 0 0 0 0 0 0 <br \/>  0 0 0 0 0 0 0 <br \/>  0 0 0 1 0 0 0 <br \/>  * * 0 1 0 * * <br \/>  * * 0 0 0 * * <\/p>\n<p>  * * 0 0 0 * * <br \/>  * * 0 0 0 * * <br \/>  0 0 0 0 0 0 0 <br \/>  0 0 0 0 0 0 0 <br \/>  0 0 0 0 0 0 0 <br \/>  * * 0 0 0 * * <br \/>  * * 0 1 0 * *   <\/div>\n<\/div>\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\/post\/168469\/\"> http:\/\/habrahabr.ru\/post\/168469\/<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<div class=\"content html_format\">\n<h4>\u041f\u0440\u0435\u0434\u044b\u0441\u0442\u043e\u0440\u0438\u044f<\/h4>\n<p>  \u0427\u0442\u043e\u0431\u044b \u043b\u0435\u0442\u043e\u043c \u0434\u0435\u0440\u0436\u0430\u0442\u044c \u043c\u043e\u0437\u0433 \u0432 \u0442\u043e\u043d\u0443\u0441\u0435 \u044f \u0441\u043a\u0430\u0447\u0430\u043b \u0441\u0435\u0431\u0435 \u0441\u0431\u043e\u0440\u043d\u0438\u043a \u0433\u043e\u043b\u043e\u0432\u043e\u043b\u043e\u043c\u043e\u043a. \u041f\u043e \u043d\u0430\u0447\u0430\u043b\u0443 \u0437\u0430\u0434\u0430\u043d\u0438\u044f \u0431\u044b\u043b\u0438 \u0434\u043e\u0432\u043e\u043b\u044c\u043d\u043e \u043f\u0440\u043e\u0441\u0442\u044b\u043c\u0438 \u0438 \u043d\u0435 \u043e\u0441\u043e\u0431\u043e \u0442\u0440\u0435\u0431\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u044b\u043c\u0438 \u043a \u043f\u0440\u043e\u044f\u0432\u043b\u0435\u043d\u0438\u044e \u043b\u043e\u0433\u0438\u043a\u0438, \u043d\u043e \u043f\u043e \u0445\u043e\u0434\u0443 \u0438\u0433\u0440\u044b \u0447\u0443\u0432\u0441\u0442\u0432\u043e\u0432\u0430\u043b\u043e\u0441\u044c \u043d\u0430\u0440\u0430\u0441\u0442\u0430\u044e\u0449\u0435\u0435 \u0443\u0441\u043b\u043e\u0436\u043d\u0435\u043d\u0438\u0435.<br \/>  \u0412 \u043a\u0430\u043a\u043e\u0439-\u0442\u043e \u043c\u043e\u043c\u0435\u043d\u0442 \u044f \u0437\u0430\u0441\u0442\u0440\u044f\u043b \u043d\u0430 \u0433\u043e\u043b\u043e\u0432\u043e\u043b\u043e\u043c\u043a\u0435 \u043f\u043e\u0434 \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u0435\u043c \u00ab\u041a\u0438\u0442\u0430\u0439\u0441\u043a\u0438\u0435 \u0448\u0430\u0448\u043a\u0438\u00bb. \u0420\u0435\u0434\u043a\u0438\u0435 \u043f\u043e\u0442\u0443\u0433\u0438 \u0440\u0435\u0448\u0438\u0442\u044c \u0435\u0451 \u0441\u0432\u043e\u0438\u043c\u0438 \u0441\u0438\u043b\u0430\u043c\u0438 \u043d\u0435 \u043f\u0440\u0438\u043d\u043e\u0441\u0438\u043b\u0438 \u043e\u0441\u043e\u0431\u044b\u0445 \u043f\u043b\u043e\u0434\u043e\u0432 \u043d\u0430 \u043f\u0440\u043e\u0442\u044f\u0436\u0435\u043d\u0438\u0435 \u0434\u043e\u043b\u0433\u043e\u0433\u043e \u0432\u0440\u0435\u043c\u0435\u043d\u0438 \u0438 \u0432 \u0438\u0442\u043e\u0433\u0435 \u044f \u043e\u0442\u043b\u043e\u0436\u0438\u043b \u0441\u0432\u043e\u0438 \u043c\u0443\u043a\u0438 \u0441 \u0440\u0435\u0448\u0435\u043d\u0438\u0435\u043c \u0434\u043e \u043b\u0443\u0447\u0448\u0438\u0445 \u0432\u0440\u0435\u043c\u0435\u043d.<br \/>  \u0417\u0430\u043a\u043e\u043d\u0447\u0438\u043b\u0430\u0441\u044c \u0437\u0438\u043c\u043d\u044f\u044f \u0441\u0435\u0441\u0441\u0438\u044f, \u0430 \u0434\u043e \u043d\u0430\u0447\u0430\u043b\u0430 \u0443\u0447\u0435\u0431\u044b \u0435\u0449\u0435 \u043f\u0430\u0440\u0430 \u043d\u0435\u0434\u0435\u043b\u044c \u2014 \u0447\u0435\u043c \u043d\u0435 \u00ab\u043b\u0443\u0447\u0448\u0438\u0435 \u0432\u0440\u0435\u043c\u0435\u043d\u0430\u00bb? \u042f \u0437\u0430\u0433\u043b\u044f\u043d\u0443\u043b \u0432 \u0438\u043d\u0442\u0435\u0440\u043d\u0435\u0442, \u0434\u0430\u0431\u044b \u043f\u0440\u043e\u0432\u0435\u0440\u0438\u0442\u044c \u0435\u0441\u0442\u044c \u043b\u0438 \u0443 \u0434\u0430\u043d\u043d\u043e\u0439 \u0433\u043e\u043b\u043e\u0432\u043e\u043b\u043e\u043c\u043a\u0438 \u0432\u043e\u043e\u0431\u0449\u0435 \u0445\u043e\u0442\u044c \u043a\u0430\u043a\u043e\u0435-\u043d\u0438\u0431\u0443\u0434\u044c \u0440\u0435\u0448\u0435\u043d\u0438\u0435, \u0438 \u043f\u0435\u0440\u0432\u044b\u0435 \u0436\u0435 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u044b \u043f\u043e\u0438\u0441\u043a\u043e\u0432\u043e\u0433\u043e \u0437\u0430\u043f\u0440\u043e\u0441\u0430 \u0443\u0431\u0435\u0434\u0438\u043b\u0438 \u043c\u0435\u043d\u044f \u0432 \u0442\u043e\u043c, \u0447\u0442\u043e \u043e\u043d\u043e \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u0435\u0442. <br \/>  \u042f \u043d\u0435 \u0441\u0442\u0430\u043b \u043f\u043e\u0434\u0433\u043b\u044f\u0434\u044b\u0432\u0430\u0442\u044c \u0432 \u043f\u0440\u043e\u0445\u043e\u0436\u0434\u0435\u043d\u0438\u0435, \u043c\u043d\u0435 \u0445\u043e\u0442\u0435\u043b\u043e\u0441\u044c \u0434\u043e\u0439\u0442\u0438 \u0434\u043e \u043d\u0435\u0433\u043e \u0441\u0432\u043e\u0438\u043c\u0438 \u0441\u0438\u043b\u0430\u043c\u0438 \u2014 \u0438\u043b\u0438 \u0441\u0430\u043c\u043e\u043c\u0443 \u0440\u0435\u0448\u0438\u0442\u044c, \u0438\u043b\u0438 \u043d\u0430\u043f\u0438\u0441\u0430\u0442\u044c \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0443, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u043d\u0430\u0439\u0434\u0435\u0442 \u043c\u043d\u0435 \u044d\u0442\u043e \u0440\u0435\u0448\u0435\u043d\u0438\u0435. \u041e\u0434\u043d\u0430\u043a\u043e \u043d\u0430\u043f\u0440\u044f\u043c\u0443\u044e \u043f\u0440\u0438\u043c\u0435\u043d\u0438\u0442\u044c \u0441\u0438\u043b\u0443 \u043c\u043e\u0437\u0433\u0430 \u043c\u043d\u0435 \u0442\u0430\u043a \u0438 \u043d\u0435 \u0443\u0434\u0430\u043b\u043e\u0441\u044c, \u044f \u044f\u0432\u043d\u043e \u0443\u043f\u0443\u0441\u043a\u0430\u043b \u0438\u0437 \u0432\u0438\u0434\u0443 \u0447\u0442\u043e-\u0442\u043e \u043f\u0440\u0438\u043d\u0446\u0438\u043f\u0438\u0430\u043b\u044c\u043d\u043e \u0432\u0430\u0436\u043d\u043e\u0435 \u0434\u043b\u044f \u043d\u0430\u0445\u043e\u0436\u0434\u0435\u043d\u0438\u044f \u0440\u0435\u0448\u0435\u043d\u0438\u044f. <br \/>   \u2014 \u00ab\u041d\u0443 \u0432\u0441\u0451, \u043f\u0443\u0441\u0442\u044c \u044d\u0442\u0430 \u0433\u043e\u043b\u043e\u0432\u043e\u043b\u043e\u043c\u043a\u0430 \u043f\u043e\u0433\u043e\u0432\u043e\u0440\u0438\u0442 \u0441 \u043c\u043e\u0438\u043c \u043c\u043d\u043e\u0433\u043e\u044f\u0434\u0435\u0440\u043d\u044b\u043c \u0434\u0440\u0443\u0433\u043e\u043c!\u00bb \u2014 \u043f\u0440\u043e\u043d\u0435\u0441\u043b\u043e\u0441\u044c \u0443 \u043c\u0435\u043d\u044f \u0432 \u0433\u043e\u043b\u043e\u0432\u0435, \u0438 \u044f \u0441\u0435\u043b \u0437\u0430 \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u0438\u0435 \u0431\u0440\u0443\u0442\u0444\u043e\u0440\u0441\u0430.<\/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-168469","post","type-post","status-publish","format-standard","hentry"],"_links":{"self":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/168469","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=168469"}],"version-history":[{"count":0,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/168469\/revisions"}],"wp:attachment":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=168469"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=168469"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=168469"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}