{"id":292063,"date":"2019-07-15T15:00:19","date_gmt":"2019-07-15T15:00:19","guid":{"rendered":"http:\/\/savepearlharbor.com\/?p=292063"},"modified":"-0001-11-30T00:00:00","modified_gmt":"-0001-11-29T21:00:00","slug":"","status":"publish","type":"post","link":"https:\/\/savepearlharbor.com\/?p=292063","title":{"rendered":"\u0427\u0435\u043c\u043f\u0438\u043e\u043d\u0430\u0442 \u043f\u043e \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044e: \u0440\u0430\u0437\u0431\u0438\u0440\u0430\u0435\u043c \u0437\u0430\u0434\u0430\u0447\u0438 \u0434\u043b\u044f\u00a0\u0444\u0440\u043e\u043d\u0442\u0435\u043d\u0434-\u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u043e\u0432"},"content":{"rendered":"\n<div class=\"post__text post__text-html js-mediator-article\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/qf\/hb\/1r\/qfhb1rqfdtnhgwe41of_hocrl2q.png\" align=\"right\" width=\"350\"> \u041d\u0430 \u0434\u043d\u044f\u0445 \u043f\u043e\u0431\u0435\u0434\u0438\u0442\u0435\u043b\u0438 \u0447\u0435\u043c\u043f\u0438\u043e\u043d\u0430\u0442\u0430 \u043f\u043e \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044e, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0437\u0430\u0432\u0435\u0440\u0448\u0438\u043b\u0441\u044f \u0432 \u043d\u0430\u0447\u0430\u043b\u0435 \u043b\u0435\u0442\u0430, \u043f\u043e\u043b\u0443\u0447\u0438\u043b\u0438 \u0437\u0430\u0441\u043b\u0443\u0436\u0435\u043d\u043d\u044b\u0435 \u043f\u0440\u0438\u0437\u044b. \u0414\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u043c\u044b \u043f\u043e\u0437\u0432\u0430\u043b\u0438 \u0438\u0445, \u0430 \u0442\u0430\u043a\u0436\u0435 \u0432\u0441\u0435\u0445 \u043e\u0441\u0442\u0430\u043b\u044c\u043d\u044b\u0445 \u0444\u0438\u043d\u0430\u043b\u0438\u0441\u0442\u043e\u0432 \u0438\u0437 \u0442\u043e\u043f-20 \u043a\u0430\u0436\u0434\u043e\u0433\u043e \u043d\u0430\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u0432 \u043c\u043e\u0441\u043a\u043e\u0432\u0441\u043a\u0438\u0439 \u043e\u0444\u0438\u0441 \u042f\u043d\u0434\u0435\u043a\u0441\u0430. \u0415\u0449\u0451 \u0440\u0430\u0437 \u043f\u043e\u0437\u0434\u0440\u0430\u0432\u043b\u044f\u0435\u043c \u0442\u0435\u0445, \u043a\u0442\u043e \u0441\u0443\u043c\u0435\u043b \u0432\u044b\u0439\u0442\u0438 \u0432 \u0444\u0438\u043d\u0430\u043b.<\/p>\n<p>  \u0422\u0435\u043c \u0432\u0440\u0435\u043c\u0435\u043d\u0435\u043c \u043c\u044b \u043f\u043e\u0434\u0433\u043e\u0442\u043e\u0432\u0438\u043b\u0438 \u0440\u0430\u0437\u0431\u043e\u0440 \u0437\u0430\u0434\u0430\u0447 \u0447\u0435\u043c\u043f\u0438\u043e\u043d\u0430\u0442\u0430, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043f\u0440\u0435\u0434\u043b\u0430\u0433\u0430\u043b\u0438\u0441\u044c \u0444\u0440\u043e\u043d\u0442\u0435\u043d\u0434-\u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0430\u043c. \u042d\u0442\u043e \u0437\u0430\u0434\u0430\u0447\u0438 \u0438\u0437 \u043a\u0432\u0430\u043b\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u043e\u043d\u043d\u043e\u0433\u043e \u044d\u0442\u0430\u043f\u0430. \u041d\u0430\u043f\u043e\u043c\u0438\u043d\u0430\u0435\u043c, \u0447\u0442\u043e \u0447\u0435\u043c\u043f\u0438\u043e\u043d\u0430\u0442 \u043f\u0440\u043e\u0432\u043e\u0434\u0438\u043b\u0441\u044f \u043f\u043e \u0447\u0435\u0442\u044b\u0440\u0451\u043c \u043d\u0430\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f\u043c: \u0431\u044d\u043a\u0435\u043d\u0434, \u0444\u0440\u043e\u043d\u0442\u0435\u043d\u0434, \u043c\u0430\u0448\u0438\u043d\u043d\u043e\u0435 \u043e\u0431\u0443\u0447\u0435\u043d\u0438\u0435 \u0438 \u0430\u043d\u0430\u043b\u0438\u0442\u0438\u043a\u0430.<\/p>\n<h2>A. \u0413\u0440\u0430\u0434\u0443\u0441\u043d\u0438\u043a \u043f\u0440\u043e\u0431\u043e\u043a<\/h2>\n<p>  <\/p>\n<h4>\u0423\u0441\u043b\u043e\u0432\u0438\u0435<\/h4>\n<p>  \u041f\u043e\u043b\u044c\u0437\u0443\u044f\u0441\u044c \u043d\u0430\u0432\u0438\u0433\u0430\u0442\u043e\u0440\u043e\u043c, \u043c\u043d\u043e\u0433\u0438\u0435 \u0432\u0438\u0434\u0435\u043b\u0438 \u00ab\u0433\u0440\u0430\u0434\u0443\u0441\u043d\u0438\u043a\u00bb \u043f\u0440\u0438 \u043f\u043e\u0441\u0442\u0440\u043e\u0435\u043d\u0438\u0438 \u0430\u0432\u0442\u043e\u043c\u043e\u0431\u0438\u043b\u044c\u043d\u043e\u0433\u043e \u043c\u0430\u0440\u0448\u0440\u0443\u0442\u0430. \u041e\u043d \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442 \u0441\u043e\u0431\u043e\u0439 \u0440\u0430\u0437\u043d\u043e\u0446\u0432\u0435\u0442\u043d\u0443\u044e \u043f\u0440\u044f\u043c\u0443\u044e, \u043d\u0430 \u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0430 \u0437\u0430\u0433\u0440\u0443\u0436\u0435\u043d\u043d\u043e\u0441\u0442\u044c \u0434\u043e\u0440\u043e\u0433 \u043d\u0430 \u043c\u0430\u0440\u0448\u0440\u0443\u0442\u0435. \u0412 \u044d\u0442\u043e\u0439 \u0437\u0430\u0434\u0430\u0447\u0435 \u043f\u0440\u0435\u0434\u043b\u0430\u0433\u0430\u0435\u0442\u0441\u044f \u043d\u0430\u043f\u0438\u0441\u0430\u0442\u044c \u0444\u0443\u043d\u043a\u0446\u0438\u044e, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u0430\u0434\u0430\u043f\u0442\u0438\u0440\u0443\u0435\u0442 \u0434\u0430\u043d\u043d\u044b\u0435 \u00ab\u0433\u0440\u0430\u0434\u0443\u0441\u043d\u0438\u043a\u0430\u00bb \u0434\u043b\u044f \u0440\u0430\u0437\u043d\u044b\u0445 \u0440\u0430\u0437\u043c\u0435\u0440\u043e\u0432 \u044d\u043a\u0440\u0430\u043d\u0430.<\/p>\n<p>  <a name=\"habracut\"><\/a>\u041d\u0430 \u0432\u0445\u043e\u0434 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u0434\u0430\u043d \u043c\u0430\u0441\u0441\u0438\u0432 \u0446\u0432\u0435\u0442\u043e\u0432 \u0434\u043b\u0438\u043d\u044b <code>length<\/code> \u0438 \u0440\u0430\u0437\u043c\u0435\u0440 \u044d\u043a\u0440\u0430\u043d\u0430 <code>width<\/code> (<code>length \u2265 width<\/code>), \u043d\u0430 \u043a\u043e\u0442\u043e\u0440\u043e\u043c \u0431\u0443\u0434\u0435\u0442 \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d \u0433\u0440\u0430\u0434\u0443\u0441\u043d\u0438\u043a. \u0418\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c\u044b\u0435 \u0446\u0432\u0435\u0442\u0430 <code>GREEN<\/code>, <code>YELLOW<\/code> \u0438 <code>RED<\/code> \u043e\u0442\u0432\u0435\u0447\u0430\u044e\u0442 \u043d\u0438\u0437\u043a\u043e\u0439, \u0441\u0440\u0435\u0434\u043d\u0435\u0439 \u0438 \u0432\u044b\u0441\u043e\u043a\u043e\u0439 \u0437\u0430\u0433\u0440\u0443\u0436\u0435\u043d\u043d\u043e\u0441\u0442\u0438 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0435\u043d\u043d\u043e. \u0426\u0432\u0435\u0442\u0430 \u0441\u0440\u0430\u0432\u043d\u0438\u043c\u044b \u043f\u043e \u0441\u0442\u0435\u043f\u0435\u043d\u0438 \u0437\u0430\u0433\u0440\u0443\u0436\u0435\u043d\u043d\u043e\u0441\u0442\u0438 \u0434\u043e\u0440\u043e\u0433: <code>GREEN &lt; YELLOW &lt; RED<\/code>.<\/p>\n<p>  \u0418\u0441\u0445\u043e\u0434\u043d\u044b\u0439 \u043c\u0430\u0441\u0441\u0438\u0432, \u043d\u0430\u0447\u0438\u043d\u0430\u044f \u0441 \u043f\u0435\u0440\u0432\u043e\u0433\u043e \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u0430, \u0440\u0430\u0437\u0431\u0438\u0432\u0430\u0435\u0442\u0441\u044f \u043d\u0430 \u043f\u043e\u0434\u0440\u044f\u0434 \u0438\u0434\u0443\u0449\u0438\u0435 \u043d\u0435\u043f\u0435\u0440\u0435\u0441\u0435\u043a\u0430\u044e\u0449\u0438\u0435\u0441\u044f \u043f\u043e\u0434\u043c\u0430\u0441\u0441\u0438\u0432\u044b \u0434\u043b\u0438\u043d\u044b <code>length \/ width<\/code> (\u0447\u0438\u0441\u043b\u043e \u0432\u0441\u0435\u0433\u0434\u0430 \u0431\u0443\u0434\u0435\u0442 \u0446\u0435\u043b\u044b\u043c). \u0412 \u043a\u0430\u0436\u0434\u043e\u043c \u043f\u043e\u0434\u043c\u0430\u0441\u0441\u0438\u0432\u0435 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0443\u043f\u043e\u0440\u044f\u0434\u043e\u0447\u0438\u0442\u044c \u0446\u0432\u0435\u0442\u0430 \u043f\u043e \u0432\u043e\u0437\u0440\u0430\u0441\u0442\u0430\u043d\u0438\u044e \u0441\u0442\u0435\u043f\u0435\u043d\u0438 \u0437\u0430\u0433\u0440\u0443\u0436\u0435\u043d\u043d\u043e\u0441\u0442\u0438 \u0434\u043e\u0440\u043e\u0433, \u0432\u044b\u0431\u0440\u0430\u0442\u044c \u043c\u0435\u0434\u0438\u0430\u043d\u043d\u044b\u0439 \u0446\u0432\u0435\u0442 \u0438 \u0437\u0430\u043c\u0435\u043d\u0438\u0442\u044c \u043d\u0430 \u043d\u0435\u0433\u043e \u0432\u0441\u044e \u0441\u043e\u0432\u043e\u043a\u0443\u043f\u043d\u043e\u0441\u0442\u044c. \u0412 \u0441\u043b\u0443\u0447\u0430\u0435 \u043c\u0430\u0441\u0441\u0438\u0432\u0430 \u0447\u0435\u0442\u043d\u043e\u0439 \u0434\u043b\u0438\u043d\u044b \u0432\u044b\u0431\u0438\u0440\u0430\u0435\u0442\u0441\u044f \u00ab\u043d\u0438\u0436\u043d\u044f\u044f \u043c\u0435\u0434\u0438\u0430\u043d\u0430\u00bb (\u044d\u043b\u0435\u043c\u0435\u043d\u0442 \u0441 \u043d\u043e\u043c\u0435\u0440\u043e\u043c <code>n\/2<\/code> \u0432 \u0443\u043f\u043e\u0440\u044f\u0434\u043e\u0447\u0435\u043d\u043d\u043e\u043c \u0440\u044f\u0434\u0443 \u0438\u0437 <code>n<\/code> \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432). \u0412 \u0438\u0442\u043e\u0433\u0435 \u0434\u043e\u043b\u0436\u0435\u043d \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c\u0441\u044f \u043c\u0430\u0441\u0441\u0438\u0432 \u0446\u0432\u0435\u0442\u043e\u0432 \u0434\u043b\u0438\u043d\u044b <code>width<\/code>.<\/p>\n<p>  \u0420\u0435\u0448\u0435\u043d\u0438\u0435 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u043f\u0440\u0435\u0434\u043e\u0441\u0442\u0430\u0432\u0438\u0442\u044c \u0432 \u0432\u0438\u0434\u0435 CommonJS-\u043c\u043e\u0434\u0443\u043b\u044f:<\/p>\n<pre><code class=\"javascript\">module.exports = function (segments, width) {     \/\/ Your code here. }; <\/code><\/pre>\n<p>  \u0412\u0435\u0440\u0434\u0438\u043a\u0442 RE \u0442\u0430\u043a\u0436\u0435 \u043e\u0437\u043d\u0430\u0447\u0430\u0435\u0442, \u0447\u0442\u043e \u043e\u0442\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u043d\u043e\u0435 \u0440\u0435\u0448\u0435\u043d\u0438\u0435 \u043d\u0435\u0432\u0435\u0440\u043d\u043e.<\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">\u0414\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0435 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b<\/b><\/p>\n<div class=\"spoiler_text\">\n<div class=\"scrollable-table\">\n<table>\n<tr>\n<td><b>\u0412\u0432\u043e\u0434<\/b><\/td>\n<td><b>\u0412\u044b\u0432\u043e\u0434<\/b><\/td>\n<\/tr>\n<tr>\n<td>\n<pre><code class=\"javascript\">const segments = ['GREEN', 'GREEN', 'RED', 'GREEN', 'YELLOW', 'RED', 'GREEN', 'YELLOW', 'RED', 'YELLOW']; const width = 5;<\/code><\/pre>\n<\/td>\n<td><code>['GREEN', 'GREEN', 'YELLOW', 'GREEN', 'YELLOW']<\/code><\/td>\n<\/tr>\n<\/table>\n<\/div>\n<\/div>\n<\/div>\n<p>  <\/p>\n<h4>\u0420\u0435\u0448\u0435\u043d\u0438\u0435<\/h4>\n<p>  1. \u0420\u0430\u0437\u0431\u0438\u0432\u0430\u0435\u043c \u0438\u0441\u0445\u043e\u0434\u043d\u044b\u0439 \u043c\u0430\u0441\u0441\u0438\u0432 \u0441\u0435\u0433\u043c\u0435\u043d\u0442\u043e\u0432 \u043d\u0430 \u0441\u0435\u0433\u043c\u0435\u043d\u0442\u044b \u0434\u043b\u0438\u043d\u043d\u043e\u0439 <code>length \/ width<\/code>.<br \/>  2. \u0412 \u043a\u0430\u0436\u0434\u043e\u043c \u0441\u0435\u0433\u043c\u0435\u043d\u0442\u0435 \u0432\u044b\u0431\u0438\u0440\u0430\u0435\u043c \u043c\u0435\u0434\u0438\u0430\u043d\u043d\u044b\u0439 \u0446\u0432\u0435\u0442, \u0438\u0441\u0445\u043e\u0434\u044f \u0438\u0437 \u0443\u0441\u043b\u043e\u0432\u0438\u044f, \u0438 \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u043c \u043d\u0430\u0439\u0434\u0435\u043d\u043d\u044b\u0439 \u0446\u0432\u0435\u0442 \u0432 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0438\u0440\u0443\u044e\u0449\u0438\u0439 \u043c\u0430\u0441\u0441\u0438\u0432.<\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">solution.js<\/b><\/p>\n<div class=\"spoiler_text\">\n<pre><code class=\"javascript\">module.exports = function solution(segments, width) {     const blockSize = segments.length \/ width;      const result = [];      for (let i = 0; i &lt; width; i++) {         result.push(getMedian(segments.slice(i * blockSize, (i + 1) * blockSize)));     }      return result; };  function getMedian(array) {     const map = {         GREEN: 1,         YELLOW: 2,         RED: 3     };      return array.sort((a, b) =&gt; map[a] - map[b])[Math.floor((array.length - 1) \/ 2)]; }<\/code><\/pre>\n<\/div>\n<\/div>\n<p>  <\/p>\n<h2>B. \u0422\u043e\u0440\u0440\u0435\u043d\u0442-\u043a\u043b\u0438\u0435\u043d\u0442<\/h2>\n<p>  <\/p>\n<h4>\u0423\u0441\u043b\u043e\u0432\u0438\u0435<\/h4>\n<p>  \u0412\u044b \u0440\u0435\u0448\u0438\u043b\u0438 \u043d\u0430\u043f\u0438\u0441\u0430\u0442\u044c \u0441\u0432\u043e\u0439 \u0442\u043e\u0440\u0440\u0435\u043d\u0442-\u043a\u043b\u0438\u0435\u043d\u0442. \u0415\u0433\u043e \u043e\u0441\u043e\u0431\u0435\u043d\u043d\u043e\u0441\u0442\u044c\u044e \u0431\u0443\u0434\u0435\u0442 \u0442\u043e, \u0447\u0442\u043e \u0441 \u0435\u0433\u043e \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u043c\u043e\u0436\u043d\u043e \u043f\u0435\u0440\u0435\u0434\u0430\u0432\u0430\u0442\u044c \u0442\u043e\u043b\u044c\u043a\u043e \u0442\u0435\u043a\u0441\u0442.<\/p>\n<p>  \u0422\u043e\u0440\u0440\u0435\u043d\u0442-\u043a\u043b\u0438\u0435\u043d\u0442 \u043f\u043e\u0447\u0442\u0438 \u0433\u043e\u0442\u043e\u0432, \u043e\u0441\u0442\u0430\u043b\u043e\u0441\u044c \u0441\u0430\u043c\u043e\u0435 \u0433\u043b\u0430\u0432\u043d\u043e\u0435: \u0441\u043e\u0431\u0440\u0430\u0442\u044c \u0438\u0441\u0445\u043e\u0434\u043d\u044b\u0439 \u0442\u0435\u043a\u0441\u0442 \u0438\u0437 \u043a\u0443\u0441\u043a\u043e\u0432, \u043d\u0430 \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043e\u043d \u0431\u044b\u043b \u0440\u0430\u0437\u0431\u0438\u0442 \u0434\u043b\u044f \u043f\u0435\u0440\u0435\u0434\u0430\u0447\u0438.<\/p>\n<p>  \u041d\u0430\u043f\u0438\u0448\u0438\u0442\u0435 \u0444\u0443\u043d\u043a\u0446\u0438\u044e, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u0434\u043e\u0436\u0434\u0435\u0442\u0441\u044f \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0438 \u0432\u0441\u0435\u0445 \u043a\u0443\u0441\u043a\u043e\u0432 \u0442\u0435\u043a\u0441\u0442\u0430 \u0438 \u0441\u043e\u0431\u0435\u0440\u0435\u0442 \u0438\u0437 \u043d\u0438\u0445 \u0438\u0441\u0445\u043e\u0434\u043d\u0443\u044e.<\/p>\n<p>  \u0424\u0443\u043d\u043a\u0446\u0438\u044f \u043f\u0440\u0438\u043d\u0438\u043c\u0430\u0435\u0442 \u043d\u0430 \u0432\u0445\u043e\u0434 \u043e\u0431\u044a\u0435\u043a\u0442 \u0441 \u0434\u0432\u0443\u043c\u044f \u043f\u043e\u043b\u044f\u043c\u0438: <code>chunkCount<\/code> \u0438 <code>emitter<\/code>, \u0438 \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 \u043f\u0440\u043e\u043c\u0438\u0441, \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u0449\u0438\u0439 \u043b\u0438\u0431\u043e \u0438\u0441\u0445\u043e\u0434\u043d\u044b\u0439 \u0442\u0435\u043a\u0441\u0442, \u043b\u0438\u0431\u043e \u043e\u0448\u0438\u0431\u043a\u0443 \u0432 \u0432\u0438\u0434\u0435 \u0441\u0442\u0440\u043e\u043a\u0438 \u0437\u0430\u0434\u0430\u043d\u043d\u043e\u0433\u043e \u0444\u043e\u0440\u043c\u0430\u0442\u0430.<\/p>\n<p>  <code>chunkCount<\/code> \u2014 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u043a\u0443\u0441\u043a\u043e\u0432, \u043d\u0430 \u043a\u043e\u0442\u043e\u0440\u043e\u0435 \u0431\u044b\u043b \u0440\u0430\u0437\u0431\u0438\u0442 \u0442\u0435\u043a\u0441\u0442.<\/p>\n<p>  \u0423 \u043a\u0430\u0436\u0434\u043e\u0433\u043e \u043a\u0443\u0441\u043a\u0430 \u0442\u0435\u043a\u0441\u0442\u0430 \u0435\u0441\u0442\u044c \u0443\u043d\u0438\u043a\u0430\u043b\u044c\u043d\u044b\u0439 \u0438\u0434\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u043e\u0440 \u0438 \u0432\u0440\u0435\u043c\u044f \u043e\u0442\u043f\u0440\u0430\u0432\u043a\u0438. \u041a\u0443\u0441\u043a\u0438 \u0441 \u0431\u043e\u043b\u0435\u0435 \u043f\u043e\u0437\u0434\u043d\u0438\u043c \u0432\u0440\u0435\u043c\u0435\u043d\u0435\u043c \u043e\u0442\u043f\u0440\u0430\u0432\u043a\u0438 \u0440\u0430\u0441\u043f\u043e\u043b\u0430\u0433\u0430\u044e\u0442\u0441\u044f \u0434\u0430\u043b\u044c\u0448\u0435 \u043e\u0442 \u043d\u0430\u0447\u0430\u043b\u0430 \u0442\u0435\u043a\u0441\u0442\u0430.<\/p>\n<p>  <code>emitter<\/code> \u2014 \u043e\u0431\u044a\u0435\u043a\u0442, \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u043a\u043e\u0442\u043e\u0440\u043e\u0433\u043e \u043c\u043e\u0436\u043d\u043e \u043f\u043e\u043b\u0443\u0447\u0430\u0442\u044c \u0437\u0430\u0433\u0440\u0443\u0436\u0435\u043d\u043d\u044b\u0435 \u043a\u0443\u0441\u043a\u0438 \u0442\u0435\u043a\u0441\u0442\u0430. \u041a\u0443\u0441\u043a\u0438 \u0442\u0435\u043a\u0441\u0442\u0430 \u043c\u043e\u0433\u0443\u0442 \u043f\u0440\u0438\u0445\u043e\u0434\u0438\u0442\u044c \u0441 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u043b\u044c\u043d\u044b\u043c\u0438 \u0432\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u043c\u0438 \u0437\u0430\u0434\u0435\u0440\u0436\u043a\u0430\u043c\u0438. \u041f\u043e\u0440\u044f\u0434\u043e\u043a \u043a\u0443\u0441\u043a\u043e\u0432 \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u043b\u044e\u0431\u044b\u043c.<\/p>\n<p>  \u0415\u0441\u043b\u0438 \u043e\u0434\u0438\u043d \u0438 \u0442\u043e\u0442 \u0436\u0435 \u043a\u0443\u0441\u043e\u043a \u0442\u0435\u043a\u0441\u0442\u0430 \u0431\u0443\u0434\u0435\u0442 \u043f\u043e\u043b\u0443\u0447\u0435\u043d \u0434\u0432\u0430\u0436\u0434\u044b \u0434\u043e \u0442\u043e\u0433\u043e, \u043a\u0430\u043a \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0430 \u0443\u0441\u043f\u0435\u0448\u043d\u043e \u0437\u0430\u0432\u0435\u0440\u0448\u0438\u043b\u0430\u0441\u044c, \u0444\u0443\u043d\u043a\u0446\u0438\u044f \u0434\u043e\u043b\u0436\u043d\u0430 \u0432\u044b\u0434\u0430\u0442\u044c \u043e\u0448\u0438\u0431\u043a\u0443 <code>\"Duplicate: &lt;id&gt;\"<\/code> (\u0441 id \u043a\u0443\u0441\u043a\u0430 \u0442\u0435\u043a\u0441\u0442\u0430 \u043d\u0430 \u043c\u0435\u0441\u0442\u0435 <code>&lt;id&gt;<\/code>).<\/p>\n<p>  \u041a\u0430\u043a \u0442\u043e\u043b\u044c\u043a\u043e \u0432\u0441\u0435 \u043a\u0443\u0441\u043a\u0438 \u0442\u0435\u043a\u0441\u0442\u0430 \u0431\u044b\u043b\u0438 \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u044b, \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0441\u043e\u0435\u0434\u0438\u043d\u0438\u0442\u044c \u0438\u0445 \u0432 \u043e\u0434\u043d\u0443 \u0441\u0442\u0440\u043e\u043a\u0443 \u0438 \u0432\u0435\u0440\u043d\u0443\u0442\u044c \u044d\u0442\u0443 \u0441\u0442\u0440\u043e\u043a\u0443 \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u043f\u0440\u043e\u043c\u0438\u0441\u0430. \u0415\u0441\u043b\u0438 \u0443 \u0434\u0432\u0443\u0445 \u043a\u0443\u0441\u043a\u043e\u0432 \u0432\u0440\u0435\u043c\u0435\u043d\u0430 \u043e\u0442\u043f\u0440\u0430\u0432\u043a\u0438 \u0441\u043e\u0432\u043f\u0430\u0434\u0430\u044e\u0442, \u043f\u043e\u0440\u044f\u0434\u043e\u043a \u044d\u0442\u0438\u0445 \u043a\u0443\u0441\u043a\u043e\u0432 \u0432 \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0435\u043d\u043d\u043e\u0439 \u0441\u0442\u0440\u043e\u043a\u0435 \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u043b\u044e\u0431\u044b\u043c.<\/p>\n<p>  \u0415\u0441\u043b\u0438 \u0432 \u0442\u0435\u0447\u0435\u043d\u0438\u0435 \u0441\u0435\u043a\u0443\u043d\u0434\u044b \u043f\u0435\u0440\u0435\u0434\u0430\u0447\u0430 \u043d\u0435 \u0437\u0430\u0432\u0435\u0440\u0448\u0438\u043b\u0430\u0441\u044c, \u0444\u0443\u043d\u043a\u0446\u0438\u044f \u0434\u043e\u043b\u0436\u043d\u0430 \u0432\u044b\u0434\u0430\u0442\u044c \u043e\u0448\u0438\u0431\u043a\u0443 <code>\"Timed out\"<\/code>.<\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">\u0412\u0445\u043e\u0434\u043d\u044b\u0435 \u0434\u0430\u043d\u043d\u044b\u0435 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e\u0442 \u0442\u0430\u043a\u043e\u043c\u0443 \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u0443 \u043d\u0430 TypeScript<\/b><\/p>\n<div class=\"spoiler_text\">(<a href=\"http:\/\/www.typescriptlang.org\/docs\/handbook\/interfaces.html\">\u041e\u0431\u0449\u0435\u0435 \u043e\u043f\u0438\u0441\u0430\u043d\u0438\u0435<\/a> \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u043e\u0432 TS.)<\/p>\n<pre><code class=\"javascript\">interface Input {     chunkCount: number;     emitter: Emitter; }  interface Emitter {     on: (callback: (chunk: Chunk) =&gt; void) =&gt; void; }  interface Chunk {     id: number;     timestamp: Date;     data: string; } <\/code><\/pre>\n<p>  <\/div>\n<\/div>\n<p>  \u0420\u0435\u0448\u0435\u043d\u0438\u0435 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u043f\u0440\u0435\u0434\u043e\u0441\u0442\u0430\u0432\u0438\u0442\u044c \u0432 \u0432\u0438\u0434\u0435 CommonJS-\u043c\u043e\u0434\u0443\u043b\u044f:<\/p>\n<pre><code class=\"javascript\">module.exports = function ({chunkCount, emitter}) {     \/\/ \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 Promise }; <\/code><\/pre>\n<p>  \u0412\u0435\u0440\u0434\u0438\u043a\u0442 RE \u0442\u0430\u043a\u0436\u0435 \u043e\u0437\u043d\u0430\u0447\u0430\u0435\u0442, \u0447\u0442\u043e \u043e\u0442\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u043d\u043e\u0435 \u0440\u0435\u0448\u0435\u043d\u0438\u0435 \u043d\u0435\u0432\u0435\u0440\u043d\u043e.<\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">\u0414\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0435 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b<\/b><\/p>\n<div class=\"spoiler_text\"><b>\u041f\u0440\u0438\u043c\u0435\u0440\u044b<\/b><\/p>\n<div class=\"scrollable-table\">\n<table>\n<tr>\n<td><b>\u0412\u0432\u043e\u0434<\/b><\/td>\n<td><b>\u0412\u044b\u0432\u043e\u0434<\/b><\/td>\n<\/tr>\n<tr>\n<td>\n<pre><code class=\"javascript\">{     chunkCount: 3,     emitter: {on: (fn) =&gt; {         fn({id: 5314, data: 'The Good, ', timestamp: new Date('2019-01-01')});         fn({id: 1543, data: 'd the Ugly', timestamp: new Date('2019-01-03')});         fn({id: 2494, data: 'the Bad an', timestamp: new Date('2019-01-02')});     }} } <\/code><\/pre>\n<\/td>\n<td><code>Resolved with \"The Good, the Bad and the Ugly\"<\/code><\/td>\n<\/tr>\n<tr>\n<td>\n<pre><code class=\"javascript\">{     chunkCount: 1,     emitter: {on: (fn) =&gt; {         fn({id: 0, data: 'hello', timestamp: new Date('2019-01-01')});         fn({id: 0, data: 'world', timestamp: new Date('2019-01-02')});     }} } <\/code><\/pre>\n<\/td>\n<td><code>Rejected with \"Duplicate id: 0\"<\/code><\/td>\n<\/tr>\n<tr>\n<td>\n<pre><code class=\"javascript\">{     chunkCount: 2,     emitter: {on: (fn) =&gt; {}} } <\/code><\/pre>\n<\/td>\n<td><code>Rejected with \"Timed out\"<\/code><\/td>\n<\/tr>\n<\/table>\n<\/div>\n<\/div>\n<\/div>\n<p>  <\/p>\n<h4>\u0420\u0435\u0448\u0435\u043d\u0438\u0435<\/h4>\n<p>  <\/p>\n<ul>\n<li>\u0421\u043e\u0445\u0440\u0430\u043d\u044f\u0435\u043c \u0437\u0430\u0433\u0440\u0443\u0436\u0435\u043d\u043d\u044b\u0435 \u043a\u0443\u0441\u043a\u0438 \u0432 \u043e\u0431\u044a\u0435\u043a\u0442 <code>chunk<\/code>.<\/li>\n<li>\u041f\u0440\u0438 \u044d\u0442\u043e\u043c \u043f\u0440\u043e\u0432\u0435\u0440\u044f\u0435\u043c \u043d\u0430 \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u043e\u0432\u0430\u043d\u0438\u0435 <code>id<\/code>. \u0415\u0441\u043b\u0438 \u043e\u043d \u0443\u0436\u0435 \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u0435\u0442, \u0442\u043e \u043e\u0442\u043c\u0435\u043d\u044f\u0435\u043c \u043f\u0440\u043e\u043c\u0438\u0441.<\/li>\n<li>\u041f\u043e\u0441\u043b\u0435 \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0438 \u0432\u0441\u0435\u0445 \u043a\u0443\u0441\u043a\u043e\u0432 \u0441\u043e\u0440\u0442\u0438\u0440\u0443\u0435\u043c \u0438 \u043e\u0431\u044a\u0435\u0434\u0438\u043d\u044f\u0435\u043c \u0438\u0445.<\/li>\n<li>\u041f\u0430\u0440\u0430\u043b\u043b\u0435\u043b\u044c\u043d\u043e \u0441 \u044d\u0442\u0438\u043c \u043d\u0443\u0436\u043d\u043e \u0432\u044b\u0441\u0442\u0430\u0432\u0438\u0442\u044c \u0442\u0430\u0439\u043c\u0430\u0443\u0442 1 \u0441. <\/li>\n<\/ul>\n<div class=\"spoiler\"><b class=\"spoiler_title\">solution.js<\/b><\/p>\n<div class=\"spoiler_text\">\n<pre><code class=\"javascript\">module.exports = function ({chunkCount, emitter: {on}}) {     return new Promise((resolve, reject) =&gt; {         const chunks = {};         let chunksDownloaded = 0;         on(({id, data, timestamp}) =&gt; {             if (typeof chunks[id] !== 'undefined') {                 reject(`Duplicate: ${id}`);             } else {                 chunks[id] = {data, timestamp};                 chunksDownloaded += 1;                  if (chunksDownloaded === chunkCount) {                     const result = Object.values(chunks)                         .sort((a, b) =&gt; a.timestamp - b.timestamp)                         .map(({data}) =&gt; data)                         .join('');                     resolve(result);                 }             }         });         setTimeout(() =&gt; {             reject('Timed out');         }, 1000);     }); }; <\/code><\/pre>\n<\/div>\n<\/div>\n<p>  <\/p>\n<h2>C. \u0411\u0438\u043d\u0430\u0440\u043d\u043e\u0435 \u0434\u0435\u0440\u0435\u0432\u043e<\/h2>\n<p>  <\/p>\n<h4>\u0423\u0441\u043b\u043e\u0432\u0438\u0435<\/h4>\n<p>  \u0420\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0443 \u0413\u0440\u0438\u0448\u0435 \u0434\u0430\u043b\u0438 \u0437\u0430\u0434\u0430\u0447\u0443 \u0440\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u0442\u044c <a href=\"https:\/\/ru.wikipedia.org\/wiki\/%D0%94%D0%B2%D0%BE%D0%B8%D1%87%D0%BD%D0%BE%D0%B5_%D0%B4%D0%B5%D1%80%D0%B5%D0%B2%D0%BE\">\u0431\u0438\u043d\u0430\u0440\u043d\u043e\u0435 \u0434\u0435\u0440\u0435\u0432\u043e<\/a>, \u043d\u043e \u043e\u043d \u043f\u043b\u043e\u0445\u043e \u043f\u043e\u043d\u044f\u043b \u0441\u0443\u0442\u044c \u0438 \u0434\u043e\u043f\u0443\u0441\u0442\u0438\u043b \u043c\u043d\u043e\u0433\u043e \u043e\u0448\u0438\u0431\u043e\u043a. \u041f\u043e\u043c\u043e\u0433\u0438\u0442\u0435 \u0435\u043c\u0443 \u0438\u0445 \u043d\u0430\u0439\u0442\u0438 \u0438 \u043f\u043e\u043f\u0440\u0430\u0432\u0438\u0442\u044c.<\/p>\n<p>  \u041d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u043d\u0430\u0439\u0442\u0438 \u0438 \u0438\u0441\u043f\u0440\u0430\u0432\u0438\u0442\u044c \u043e\u0448\u0438\u0431\u043a\u0438 \u0432 \u043a\u043e\u0434\u0435 <a href=\"https:\/\/gist.github.com\/alt-j\/cbc10756d26cb58f544a378af6c47427\"><code>task.js<\/code><\/a>. \u0414\u043e\u043b\u0436\u0435\u043d \u044d\u043a\u0441\u043f\u043e\u0440\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c\u0441\u044f \u043a\u043b\u0430\u0441\u0441 \u0434\u043b\u044f \u0440\u0430\u0431\u043e\u0442\u044b \u0441 \u0431\u0438\u043d\u0430\u0440\u043d\u044b\u043c \u0434\u0435\u0440\u0435\u0432\u043e\u043c. \u0418\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441 \u043a\u043b\u0430\u0441\u0441\u0430:<\/p>\n<pre><code class=\"javascript\">type Data = number;  type ITraverseCallback = (data: Data) =&gt; void;  interface IBinaryTreeNode {     data: Data;     left: IBinaryTreeNode | null;     right: IBinaryTreeNode | null;      static create(...items: Data[]): IBinaryTreeNode;      constructor(data: Data);      insert(data: Data): this;     remove(data: Data): IBinaryTreeNode | null;     search(data: Data): IBinaryTreeNode | null;      inorder(callback: ITraverseCallback): this;     preorder(callback: ITraverseCallback): this;     postorder(callback: ITraverseCallback): this; } <\/code><\/pre>\n<p>  <b>\u0417\u0430\u043c\u0435\u0447\u0430\u043d\u0438\u0435<\/b>: \u0421\u0447\u0438\u0442\u0430\u0442\u044c JSDoc \u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u044b\u043c.<\/p>\n<p>  \u0412\u0435\u0440\u0434\u0438\u043a\u0442 RE \u0442\u0430\u043a\u0436\u0435 \u043e\u0437\u043d\u0430\u0447\u0430\u0435\u0442, \u0447\u0442\u043e \u043e\u0442\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u043d\u043e\u0435 \u0440\u0435\u0448\u0435\u043d\u0438\u0435 \u043d\u0435\u0432\u0435\u0440\u043d\u043e.<\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">\u0414\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0435 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b<\/b><\/p>\n<div class=\"spoiler_text\"><b>\u041f\u0440\u0438\u043c\u0435\u0440 \u0432\u0432\u043e\u0434\u0430<\/b>:  <\/p>\n<pre><code class=\"javascript\">let output = '';  BinaryTreeNode.create(10, 5, 13, 7, 20, 12).inorder((data) =&gt; {     output += data + '-'; }); <\/code><\/pre>\n<p>  <b>\u0412\u044b\u0432\u043e\u0434<\/b>:  <\/p>\n<pre><code class=\"plaintext\">5-7-10-12-13-20-<\/code><\/pre>\n<\/div>\n<\/div>\n<p>  <\/p>\n<h4>\u0420\u0435\u0448\u0435\u043d\u0438\u0435<\/h4>\n<p>  <\/p>\n<pre><code class=\"javascript\">\/**  * @typedef Data  * @type {Number}  *\/  class BinaryTreeNode {     \/**      * @param  {...Data} items      * @returns {BinaryTreeNode}      *\/     static create(...items) {         \/\/ e - \u0430\u043d\u0433\u043b\u0438\u0439\u0441\u043a\u0430\u044f.         const root = new BinaryTreeNode(items[0]);         \/\/ \u041f\u043e\u0441\u043b\u0435 return \u043d\u0435\u043b\u044c\u0437\u044f \u043f\u0435\u0440\u0435\u043d\u043e\u0441\u0438\u0442\u044c \u0441\u0442\u0440\u043e\u043a\u0438.         \/\/ \u041d\u0443\u0436\u0435\u043d .slice(1), \u0438\u043d\u0430\u0447\u0435 \u0434\u043e\u0431\u0430\u0432\u0438\u0442\u0441\u044f \u0434\u0443\u0431\u043b\u0438\u0440\u0443\u044e\u0449\u0438\u0439 \u043f\u0435\u0440\u0432\u044b\u0439 \u044d\u043b\u0435\u043c\u0435\u043d\u0442.         return items.slice(1).reduce((node, data) =&gt; node.insert(data), root);     }      \/**      * @param {Data} data      *\/     constructor(data) {         \/**          * @type {Data}          *\/         this.data = data;         \/\/ \u041d\u0435 \u0437\u0430\u0431\u044b\u0432\u0430\u0435\u043c \u0438\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0432\u0435\u0442\u043a\u0438.         \/**          * @type {BinaryTreeNode | null}          *\/         this.left = null;         \/**          * @type {BinaryTreeNode | null}          *\/         this.right = null;     }      \/**      * \u0412\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442 \u0434\u0430\u043d\u043d\u044b\u0435 \u0432 \u043d\u043e\u0434\u0443.      * \u041f\u0440\u043e\u0445\u043e\u0434\u0438\u0442 \u043f\u043e \u0432\u0441\u0435\u043c \u0434\u0435\u0442\u044f\u043c, \u0447\u0442\u043e\u0431\u044b \u043d\u0430\u0439\u0442\u0438 \u0432\u0435\u0440\u043d\u043e\u0435 \u043c\u0435\u0441\u0442\u043e \u0434\u043b\u044f \u0432\u0441\u0442\u0430\u0432\u043a\u0438.      *      * @param {Date} data      * @returns {BinaryTreeNode}      *\/     insert(data) {         \/\/ \u041d\u0435\u0432\u0435\u0440\u043d\u043e\u0435 \u0443\u0441\u043b\u043e\u0432\u0438\u0435 \u0431\u0438\u043d\u0430\u0440\u043d\u043e\u0433\u043e \u0434\u0435\u0440\u0435\u0432\u0430.         if (data &lt; this.data) {             if (this.left === null) {                 this.left = new BinaryTreeNode(data);             } else {                 this.left.insert(data);             }         } else {             if (this.right === null) {                 this.right = new BinaryTreeNode(data);             } else {                 this.right.insert(data);             }         }          \/\/ \u041c\u0435\u0442\u043e\u0434 \u0434\u043e\u043b\u0436\u0435\u043d \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u043e\u0432\u0430\u0442\u044c \u0441\u043f\u0435\u0446\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u0438, \u043d\u0443\u0436\u043d\u043e \u0432\u0435\u0440\u043d\u0443\u0442\u044c \u044d\u043a\u0437\u0435\u043c\u043f\u043b\u044f\u0440.         return this;     }      \/**      * \u0423\u0434\u0430\u043b\u044f\u0435\u0442 \u043d\u043e\u0434\u0443 \u043f\u043e \u043f\u0435\u0440\u0435\u0434\u0430\u043d\u043d\u044b\u043c \u0434\u0430\u043d\u043d\u044b\u043c.      * \u041e\u0431\u0445\u043e\u0434\u0438\u0442 \u0432\u0441\u0435\u0445 \u0434\u0435\u0442\u0435\u0439, \u0447\u0442\u043e\u0431\u044b \u043d\u0430\u0439\u0442\u0438 \u043d\u043e\u0434\u0443.      *      * @param {Data} data      * @returns {BinaryTreeNode | null}      *\/     remove(data) {         \/\/ \u0414\u043b\u044f \u0432\u0441\u0435\u0445 \u0443\u0441\u043b\u043e\u0432\u0438\u0439 \u043d\u0443\u0436\u043d\u044b {}.         \/\/ \u041d\u0435\u0432\u0435\u0440\u043d\u043e\u0435 \u0443\u0441\u043b\u043e\u0432\u0438\u0435 \u0431\u0438\u043d\u0430\u0440\u043d\u043e\u0433\u043e \u0434\u0435\u0440\u0435\u0432\u0430.         if (data &lt; this.data) {             \/\/ \u041f\u0440\u043e\u043f\u0443\u0449\u0435\u043d\u0430 \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0430 \u043d\u0430 \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u043e\u0432\u0430\u043d\u0438\u0435 `this.left`.             this.left = this.left &amp;&amp; this.left.remove(data);         } else if (data &gt; this.data) {             \/\/ \u041f\u0440\u043e\u043f\u0443\u0449\u0435\u043d\u0430 \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0430 \u043d\u0430 \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u043e\u0432\u0430\u043d\u0438\u0435 `this.right`.             this.right = this.right &amp;&amp; this.right.remove(data);         } else {             if (this.left === null &amp;&amp; this.right === null) {                 return null;             }              if (this.left === null) {                 return this.right;             } else if (this.right === null) {                 return this.left;             }              const aux = findMinNode(this.right);             this.data = aux.data;              this.right = this.right.remove(aux.data);         }          \/\/ \u041c\u0435\u0442\u043e\u0434 \u0434\u043e\u043b\u0436\u0435\u043d \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u043e\u0432\u0430\u0442\u044c \u0441\u043f\u0435\u0446\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u0438, \u043d\u0443\u0436\u043d\u043e \u0432\u0435\u0440\u043d\u0443\u0442\u044c \u044d\u043a\u0437\u0435\u043c\u043f\u043b\u044f\u0440.         return this;     }      \/**      * \u0418\u0449\u0435\u0442 \u043d\u043e\u0434\u0443 \u043f\u043e \u043f\u0435\u0440\u0435\u0434\u0430\u043d\u043d\u044b\u043c \u0434\u0430\u043d\u043d\u044b\u043c.      *      * @param {Data} data      * @returns {BinaryTreeNode | null}      *\/     search(data) {         \/\/ \u041d\u0435\u0432\u0435\u0440\u043d\u043e\u0435 \u0443\u0441\u043b\u043e\u0432\u0438\u0435 \u0431\u0438\u043d\u0430\u0440\u043d\u043e\u0433\u043e \u0434\u0435\u0440\u0435\u0432\u0430.         if (data &lt; this.data) {             \/\/ \u041f\u0440\u043e\u043f\u0443\u0449\u0435\u043d\u0430 \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0430 \u043d\u0430 \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u043e\u0432\u0430\u043d\u0438\u0435 `this.left`.             return this.left &amp;&amp; this.left.search(data);         }         if (data &gt; this.data) {             \/\/ \u041f\u0440\u043e\u043f\u0443\u0449\u0435\u043d\u0430 \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0430 \u043d\u0430 \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u043e\u0432\u0430\u043d\u0438\u0435 `this.right`.             return this.right &amp;&amp; this.right.search(data);         }         \/\/ \u041d\u0435 \u0437\u0430\u0431\u044b\u0432\u0430\u0435\u043c, \u0447\u0442\u043e \u0435\u0441\u043b\u0438 \u043d\u043e\u0434\u0430 \u043d\u0435 \u043d\u0430\u0448\u043b\u0430\u0441\u044c, \u0442\u043e \u043d\u0430\u0434\u043e \u0432\u0435\u0440\u043d\u0443\u0442\u044c `null`.         if (data === this.data) {             return this;         }         return null;     }      \/**      * \u041e\u0431\u0445\u043e\u0434 \u0434\u0435\u0440\u0435\u0432\u0430 \u043f\u043e \u043f\u043e\u0440\u044f\u0434\u043a\u0443, \u043d\u0430\u0447\u0438\u043d\u0430\u044f \u0440\u0435\u043a\u0443\u0440\u0441\u0438\u0432\u043d\u043e \u0441 \u043b\u0435\u0432\u043e\u0439 \u0432\u0435\u0442\u0432\u0438 \u0447\u0435\u0440\u0435\u0437 \u0432\u0435\u0440\u0448\u0438\u043d\u0443 \u0438 \u043a \u043f\u0440\u0430\u0432\u043e\u0439 \u0432\u0435\u0442\u0432\u0438.      * \u0414\u0430\u043d\u043d\u044b\u0435 \u043f\u043e\u043b\u0443\u0447\u0430\u044e\u0442\u0441\u044f \u0432 \u043e\u0442\u0441\u043e\u0440\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u043e\u043c \u043f\u043e\u0440\u044f\u0434\u043a\u0435.      *      * @param {Function} callback      * @returns {BinaryTreeNode}      *\/     inorder(callback) {         if (this.left !== null) {             this.left.inorder(callback);         }          callback(this.data);          if (this.right !== null) {             this.right.inorder(callback);         }          \/\/ \u041c\u0435\u0442\u043e\u0434 \u0434\u043e\u043b\u0436\u0435\u043d \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u043e\u0432\u0430\u0442\u044c \u0441\u043f\u0435\u0446\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u0438, \u043d\u0443\u0436\u043d\u043e \u0432\u0435\u0440\u043d\u0443\u0442\u044c \u044d\u043a\u0437\u0435\u043c\u043f\u043b\u044f\u0440.         return this;     }      \/**      * \u041f\u0440\u044f\u043c\u043e\u0439 \u043e\u0431\u0445\u043e\u0434 \u0434\u0435\u0440\u0435\u0432\u0430, \u043d\u0430\u0447\u0438\u043d\u0430\u044f \u0441 \u0432\u0435\u0440\u0448\u0438\u043d\u044b \u0438 \u0434\u0432\u0438\u0433\u0430\u044f\u0441\u044c \u0440\u0435\u043a\u0443\u0440\u0441\u0438\u0432\u043d\u043e \u043e\u0442 \u043b\u0435\u0432\u043e\u0439 \u0432\u0435\u0442\u0432\u0438 \u043a \u043f\u0440\u0430\u0432\u043e\u0439.      *      * @param {Function} callback      * @returns {BinaryTreeNode}      *\/     preorder(callback) {         callback(this.data);          if (this.left !== null) {             \/\/ \u0420\u0435\u043a\u0443\u0440\u0441\u0438\u044f \u0434\u043e\u043b\u0436\u043d\u0430 \u0431\u044b\u0442\u044c \u043d\u0430 \u0442\u043e\u0442 \u0436\u0435 \u043c\u0435\u0442\u043e\u0434.             this.left.preorder(callback);         }          if (this.right !== null) {             this.right.preorder(callback);         }          \/\/ \u041c\u0435\u0442\u043e\u0434 \u0434\u043e\u043b\u0436\u0435\u043d \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u043e\u0432\u0430\u0442\u044c \u0441\u043f\u0435\u0446\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u0438, \u043d\u0443\u0436\u043d\u043e \u0432\u0435\u0440\u043d\u0443\u0442\u044c \u044d\u043a\u0437\u0435\u043c\u043f\u043b\u044f\u0440.         return this;     }      \/**      * \u041e\u0431\u0440\u0430\u0442\u043d\u044b\u0439 \u043e\u0431\u0445\u043e\u0434 \u0434\u0435\u0440\u0435\u0432\u0430, \u043d\u0430\u0447\u0438\u043d\u0430\u044f \u0441 \u043b\u0435\u0432\u043e\u0439 \u0432\u0435\u0442\u0432\u0438 \u0438 \u0434\u0432\u0438\u0433\u0430\u044f\u0441\u044c \u0440\u0435\u043a\u0443\u0440\u0441\u0438\u0432\u043d\u043e \u0447\u0435\u0440\u0435\u0437 \u043f\u0440\u0430\u0432\u0443\u044e \u0432\u0435\u0442\u0432\u044c \u043a \u0432\u0435\u0440\u0448\u0438\u043d\u0435.      *      * @param {Function} callback      * @returns {BinaryTreeNode}      *\/     postorder(callback) {         if (this.left !== null) {             this.left.postorder(callback);         }          if (this.right !== null) {             \/\/ \u0420\u0435\u043a\u0443\u0440\u0441\u0438\u044f \u0434\u043e\u043b\u0436\u043d\u0430 \u0431\u044b\u0442\u044c \u043d\u0430 \u0442\u043e\u0442 \u0436\u0435 \u043c\u0435\u0442\u043e\u0434.             this.right.postorder(callback);         }          \/\/ \u041d\u0435\u0432\u0435\u0440\u043d\u0430\u044f \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f \u043c\u0435\u0442\u043e\u0434\u0430, \u0441\u0430\u043c\u0430 \u043d\u043e\u0434\u0430 \u0434\u043e\u043b\u0436\u043d\u0430 \u043f\u043e\u0441\u0435\u0449\u0430\u0442\u044c\u0441\u044f \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0435\u0439.         callback(this.data);          return this;     } }  \/**  * \u041d\u0430\u0445\u043e\u0434\u0438\u0442 \u043c\u0438\u043d\u0438\u043c\u0430\u043b\u044c\u043d\u0443\u044e \u043d\u043e\u0434\u0443, \u043d\u0430\u0447\u0438\u043d\u0430\u044f \u0441 \u043f\u0435\u0440\u0435\u0434\u0430\u043d\u043d\u043e\u0439.  *  * @param {BinaryTreeNode} node  * @returns {BinaryTreeNode}  *\/ function findMinNode(node) {     \/\/ \u0412 \u0443\u0441\u043b\u043e\u0432\u0438\u0438 \u0442\u0435\u0440\u043d\u0430\u0440\u043d\u0438\u043a\u0430 \u043d\u0435 \u0434\u043e\u043b\u0436\u043d\u043e \u0431\u044b\u0442\u044c \u043f\u0440\u0438\u0441\u0432\u0430\u0438\u0432\u0430\u043d\u0438\u0439.     \/\/ \u041f\u0435\u0440\u0435\u043f\u0443\u0442\u0430\u043d\u044b \u0432\u0435\u0442\u043a\u0438 \u0442\u0435\u0440\u043d\u0430\u0440\u043d\u0438\u043a\u0430 true \u0438 false.     if (node.left === null) {         return node;     } else {         return findMinNode(node.left);     } }  module.exports = BinaryTreeNode;<\/code><\/pre>\n<p>  <\/p>\n<h2>D. \u041b\u043e\u0433\u043e\u0442\u0438\u043f \u042f\u043d\u0434\u0435\u043a\u0441.\u041a\u0430\u0440\u0442<\/h2>\n<p>  <\/p>\n<h4>\u0423\u0441\u043b\u043e\u0432\u0438\u0435<\/h4>\n<p>  \u0414\u0438\u0437\u0430\u0439\u043d\u0435\u0440 \u043e\u0431\u043d\u043e\u0432\u0438\u043b \u043b\u043e\u0433\u043e\u0442\u0438\u043f <a href=\"https:\/\/yandex.ru\/maps\/\">\u042f\u043d\u0434\u0435\u043a\u0441.\u041a\u0430\u0440\u0442<\/a> (\u043c\u0430\u0441\u0448\u0442\u0430\u0431 x5):<\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/yj\/87\/lk\/yj87lkepck5hurb459hnttzbmto.png\"><\/p>\n<p>  \u0415\u0433\u043e \u043f\u043e\u0442\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044f \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0432 \u0441\u0430\u043c\u044b\u0445 \u0440\u0430\u0437\u043d\u044b\u0445 \u0443\u0441\u043b\u043e\u0432\u0438\u044f\u0445. \u0427\u0442\u043e\u0431\u044b \u044d\u0442\u043e \u0431\u044b\u043b\u043e \u043c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u043e \u0443\u0434\u043e\u0431\u043d\u043e, \u0441\u0432\u0435\u0440\u0441\u0442\u0430\u0439\u0442\u0435 \u0435\u0433\u043e \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u043e\u0434\u043d\u043e\u0433\u043e HTML-\u044d\u043b\u0435\u043c\u0435\u043d\u0442\u0430 \u043d\u0430 \u0447\u0438\u0441\u0442\u043e\u043c CSS. \u041b\u043e\u0433\u043e\u0442\u0438\u043f \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d \u0432 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u043b\u044c\u043d\u043e\u043c \u043c\u0435\u0441\u0442\u0435 \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u0430, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u0432\u0430\u0436\u043d\u043e, \u0447\u0442\u043e\u0431\u044b \u043e\u043d \u043a\u043e\u0440\u0440\u0435\u043a\u0442\u043d\u043e \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0430\u043b\u0441\u044f \u043d\u0430 \u043b\u044e\u0431\u043e\u043c \u0444\u043e\u043d\u0435.<\/p>\n<p>  \u0418\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u043a\u0430\u0440\u0442\u0438\u043d\u043a\u0438 (\u0434\u0430\u0436\u0435 \u0447\u0435\u0440\u0435\u0437 <code>data:uri<\/code>) \u043d\u0435\u043b\u044c\u0437\u044f.<\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">\u0414\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0435 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b<\/b><\/p>\n<div class=\"spoiler_text\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/aw\/sz\/ip\/awszipukrj--qfzfggcz5__yrxm.png\"><br \/>  \u2014 \u0426\u0432\u0435\u0442\u0430 \u0446\u0435\u043d\u0442\u0440\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u043a\u0440\u0443\u0433\u0430: #fff<br \/>  \u2014 \u0426\u0432\u0435\u0442 \u0432\u043d\u0435\u0448\u043d\u0435\u0433\u043e \u043a\u0440\u0443\u0433\u0430: #f33<br \/>  \u2014 \u0426\u0432\u0435\u0442 \u00ab\u043d\u043e\u0436\u043a\u0438\u00bb: #e00000<\/div>\n<\/div>\n<p>  \u0420\u0435\u0448\u0435\u043d\u0438\u0435 \u043d\u0443\u0436\u043d\u043e \u043f\u0440\u0435\u0434\u043e\u0441\u0442\u0430\u0432\u0438\u0442\u044c \u0432 \u0432\u0438\u0434\u0435 CSS-\u0444\u0430\u0439\u043b\u0430. \u0412\u0430\u0448 \u0444\u0430\u0439\u043b \u0431\u0443\u0434\u0435\u0442 \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d \u043a\u0430\u043a <code>solution.css<\/code> \u043a HTML-\u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0435 \u0432\u0438\u0434\u0430:<\/p>\n<pre><code class=\"xml\">&lt;!DOCTYPE html&gt; &lt;html&gt;     &lt;head&gt;         &lt;style&gt;             body {                 margin: 0;             }         &lt;\/style&gt;         &lt;link rel=\"stylesheet\" href=\"solution.css\"&gt;     &lt;\/head&gt;     &lt;body&gt;         &lt;div&gt;&lt;\/div&gt;     &lt;\/body&gt; &lt;\/html&gt;<\/code><\/pre>\n<p>  <b>\u0412\u0430\u0436\u043d\u043e<\/b>: \u043b\u043e\u0433\u043e\u0442\u0438\u043f \u0434\u043e\u043b\u0436\u0435\u043d \u043d\u0430\u0445\u043e\u0434\u0438\u0442\u044c\u0441\u044f \u0432 \u0432\u0435\u0440\u0445\u043d\u0435\u043c \u043b\u0435\u0432\u043e\u043c \u0443\u0433\u043b\u0443 \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u044b, \u0432\u043f\u043b\u043e\u0442\u043d\u0443\u044e \u043f\u0440\u0438\u0436\u0430\u0442\u044b\u0439 \u043a \u043d\u0435\u043c\u0443.<\/p>\n<p>  \u0412\u0430\u0448\u0435 \u0440\u0435\u0448\u0435\u043d\u0438\u0435 \u0431\u0443\u0434\u0435\u0442 \u0442\u0435\u0441\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c\u0441\u044f \u0432 \u0431\u0440\u0430\u0443\u0437\u0435\u0440\u0435 <b>Google Chrome 69<\/b>.<\/p>\n<p>  \u0420\u0435\u043a\u043e\u043c\u0435\u043d\u0434\u0443\u0435\u043c \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u043f\u043b\u0430\u0433\u0438\u043d\u044b \u0434\u043b\u044f pixel-perfect-\u0432\u0435\u0440\u0441\u0442\u043a\u0438, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440 <a href=\"https:\/\/chrome.google.com\/webstore\/detail\/perfectpixel-by-welldonec\/dkaagdgjmgdmbnecmcefdhjekcoceebi\">PerfectPixel<\/a>.<\/p>\n<h4>\u0420\u0435\u0448\u0435\u043d\u0438\u0435<\/h4>\n<p>  <\/p>\n<pre><code class=\"css\">\/\/ \u0421\u0430\u043c \u0431\u043b\u043e\u043a \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c \u0434\u043b\u044f \u043e\u0442\u0440\u0438\u0441\u043e\u0432\u043a\u0438 \u0431\u0435\u043b\u043e\u0433\u043e \u043a\u0440\u0443\u0433\u0430 \u0441 \u043a\u0440\u0430\u0441\u043d\u043e\u0439 \u0433\u0440\u0430\u043d\u0438\u0446\u0435\u0439. div {     position: absolute;     width: 6px;     height: 6px;     border: 5px solid #f33;     border-radius: 8px;     background: #fff; }  \/\/ \u041f\u0441\u0435\u0432\u0434\u043e\u044d\u043b\u0435\u043c\u0435\u043d\u0442 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c \u0434\u043b\u044f \u043e\u0442\u0440\u0438\u0441\u043e\u0432\u043a\u0438 \u00ab\u043d\u043e\u0436\u043a\u0438\u00bb \u043f\u0438\u043d\u0430. \/\/ \u0414\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u0440\u0438\u0441\u0443\u0435\u043c \u0442\u0440\u0435\u0443\u0433\u043e\u043b\u044c\u043d\u0438\u043a, \u0438 \u043f\u043e\u0432\u043e\u0440\u0430\u0447\u0438\u0432\u0430\u0435\u043c \u0435\u0433\u043e \u043d\u0430 \u0437\u0430\u0434\u0430\u043d\u043d\u044b\u0435 9 \u0433\u0440\u0430\u0434\u0443\u0441\u043e\u0432. div::after {     content: '';     position: absolute;     top: 6px;     left: 2px;     border-top: 15px solid #e00000;     border-right: 7px solid transparent;     transform: rotate(9deg);     z-index: -1; } <\/code><\/pre>\n<h2>E. \u041a\u0438\u0440\u043f\u0438\u0447\u043d\u0430\u044f \u0441\u0435\u0442\u043a\u0430<\/h2>\n<p>  <\/p>\n<h4>\u0423\u0441\u043b\u043e\u0432\u0438\u0435<\/h4>\n<p>  \u0420\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a \u0418\u0432\u0430\u043d \u0440\u0435\u0448\u0438\u043b \u043e\u0442\u0440\u0435\u0444\u0430\u043a\u0442\u043e\u0440\u0438\u0442\u044c CSS-\u0441\u0442\u0438\u043b\u0438 \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u044b, \u043f\u043e\u0441\u043b\u0435 \u0447\u0435\u0433\u043e \u043f\u043e\u043b\u043e\u043c\u0430\u043b \u0435\u0435 \u0432\u043d\u0435\u0448\u043d\u0438\u0439 \u0432\u0438\u0434.<\/p>\n<p>  \u041f\u0435\u0440\u0432\u043e\u043d\u0430\u0447\u0430\u043b\u044c\u043d\u044b\u0439 \u0434\u0438\u0437\u0430\u0439\u043d:<br \/>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/0r\/rq\/yw\/0rrqywabnukf3mtutsvr0i-_dcu.png\"><br \/>  \u041d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u043f\u0440\u0438\u0432\u0435\u0441\u0442\u0438 \u0432\u043d\u0435\u0448\u043d\u0438\u0439 \u0432\u0438\u0434 \u0432 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0438\u0435 \u0441 \u043f\u0435\u0440\u0432\u043e\u043d\u0430\u0447\u0430\u043b\u044c\u043d\u044b\u043c \u0434\u0438\u0437\u0430\u0439\u043d\u043e\u043c \u0441 \u043d\u0430\u0438\u043c\u0435\u043d\u044c\u0448\u0438\u043c \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e\u043c \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0439 \u0432 \u0442\u0435\u043a\u0443\u0449\u0435\u043c CSS-\u0444\u0430\u0439\u043b\u0435.<\/p>\n<p>  <b>\u0412\u0430\u0436\u043d\u043e<\/b>: \u041f\u0440\u0438 \u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0438\u0438 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432 \u0432 \u0441\u043f\u0438\u0441\u043e\u043a, \u0441\u0435\u0442\u043a\u0430 \u0434\u043e\u043b\u0436\u043d\u0430 \u0430\u043d\u0430\u043b\u043e\u0433\u0438\u0447\u043d\u043e \u0440\u0430\u0437\u0440\u0430\u0441\u0442\u0430\u0442\u044c\u0441\u044f \u0432\u043d\u0438\u0437.<\/p>\n<p>  CSS-\u0441\u0442\u0438\u043b\u0438 \u043f\u043e\u0441\u043b\u0435 \u0440\u0435\u0444\u0430\u043a\u0442\u043e\u0440\u0438\u043d\u0433\u0430: <a href=\"https:\/\/gist.github.com\/sigorilla\/8047f38670d07dad9665bc89d73f1573#file-solution-css\"><code>.\/solution.css<\/code><\/a>.<\/p>\n<p>  \u041f\u043e\u0441\u043b\u0435 \u0438\u0441\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0439 \u043d\u0443\u0436\u043d\u043e \u043f\u0440\u0435\u0434\u043e\u0441\u0442\u0430\u0432\u0438\u0442\u044c \u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u043d\u044b\u0439 CSS-\u0444\u0430\u0439\u043b. \u0414\u0430\u043d\u043d\u044b\u0439 \u0444\u0430\u0439\u043b \u0431\u0443\u0434\u0435\u0442 \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d \u043a\u0430\u043a \u0438\u0441\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u043d\u044b\u0439 <code>solution.css<\/code> \u043a <a href=\"https:\/\/gist.github.com\/sigorilla\/8047f38670d07dad9665bc89d73f1573\">HTML-\u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0435<\/a>.<\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">\u0414\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0435 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b<\/b><\/p>\n<div class=\"spoiler_text\">\u0412\u0430\u0448\u0435 \u0440\u0435\u0448\u0435\u043d\u0438\u0435 \u0431\u0443\u0434\u0435\u0442 \u0442\u0435\u0441\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c\u0441\u044f \u0432 \u0431\u0440\u0430\u0443\u0437\u0435\u0440\u0435 <b>Google Chrome 69<\/b>. \u0421\u0435\u043c\u0435\u0439\u0441\u0442\u0432\u043e \u0438 \u0434\u0440\u0443\u0433\u0438\u0435 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b \u0448\u0440\u0438\u0444\u0442\u043e\u0432 \u0438\u0437\u043c\u0435\u043d\u044f\u0442\u044c \u043d\u0435 \u043d\u0430\u0434\u043e. \u041f\u0440\u0438 \u044d\u0442\u043e\u043c \u043b\u043e\u043a\u0430\u043b\u044c\u043d\u043e \u0443 \u0432\u0430\u0441 \u043c\u043e\u0436\u0435\u0442 \u043d\u0435 \u0441\u043e\u0432\u043f\u0430\u0434\u0430\u0442\u044c \u0448\u0440\u0438\u0444\u0442 \u0441 \u043e\u0436\u0438\u0434\u0430\u0435\u043c\u044b\u043c \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0435\u043c, \u0442. \u043a. \u0441\u043a\u0440\u0438\u043d\u0448\u043e\u0442\u044b \u0441\u0434\u0435\u043b\u0430\u043d\u044b \u0432 Ubuntu.<\/p>\n<p>  \u0420\u0435\u043a\u043e\u043c\u0435\u043d\u0434\u0443\u0435\u043c \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u043f\u043b\u0430\u0433\u0438\u043d\u044b \u0434\u043b\u044f pixel-perfect-\u0432\u0435\u0440\u0441\u0442\u043a\u0438, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440 <a href=\"https:\/\/chrome.google.com\/webstore\/detail\/perfectpixel-by-welldonec\/dkaagdgjmgdmbnecmcefdhjekcoceebi\">PerfectPixel<\/a>.<\/div>\n<\/div>\n<p>  <\/p>\n<h4>\u0420\u0435\u0448\u0435\u043d\u0438\u0435<\/h4>\n<p>  \u0418\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f \u043d\u0443\u0436\u043d\u043e \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u044c \u0442\u043e\u043b\u044c\u043a\u043e \u0441 \u0441\u0435\u043b\u0435\u043a\u0442\u043e\u0440\u043e\u043c <code>.event<\/code> \u0438 \u0435\u0433\u043e \u043d\u0430\u0441\u043b\u0435\u0434\u043d\u0438\u043a\u0430\u043c\u0438.<\/p>\n<pre><code class=\"css\">:root {     --color-gray: #4e4d4d;     --color-main: #000000;      --width-layout: 900px;      --paddingx5: 50px;     --paddingx4: 40px;     --paddingx3: 30px;     --paddingx2: 20px;     --padding: 10px;      --font-size-largex2: 40px;     --font-size-large: 20px;     --font-size-medium: 16px;     --font-size-small: 14px; }  body {     margin: 0 auto;     padding: var(--paddingx5) var(--paddingx4);     font: var(--font-size-small)\/1.4 arialregular;     color: var(--color-main);     width: var(--width-layout); }  .hgroup {     margin-bottom: var(--paddingx4);     text-align: center; }     .hgroup__title {         font-size: var(--font-size-largex2);         font-weight: normal;         margin: 0;     }      .hgroup__desc {         font-size: var(--font-size-large);         font-weight: normal;         color: var(--color-gray);         margin: 0;     }  .events {     list-style: none;     margin: 0;     padding: 0;          \/\/ \u0423\u0431\u0438\u0440\u0430\u0435\u043c \u0441\u0442\u0438\u043b\u0438 \u0434\u043b\u044f \u0433\u0440\u0438\u0434\u0430.     \/\/ \u0414\u043b\u044f \u0440\u0435\u0448\u0435\u043d\u0438\u044f \u043d\u0443\u0436\u043d\u043e \u0431\u044b\u043b\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u043a\u043e\u043b\u043e\u043d\u043a\u0438.     columns: 3;     column-gap: var(--paddingx4); }     .events__item {         \/\/ \u0427\u0442\u043e\u0431\u044b \u043d\u0435 \u0431\u044b\u043b\u043e \u0440\u0430\u0437\u0440\u044b\u0432\u043e\u0432.         break-inside: avoid;         \/\/ \u0427\u0442\u043e\u0431\u044b margin \u043d\u0435 \u0437\u0430\u043b\u0435\u0437\u0430\u043b \u043d\u0430 \u0434\u0440\u0443\u0433\u0443\u044e \u043a\u043e\u043b\u043e\u043d\u043a\u0443.         padding-bottom: var(--paddingx4);     }  .card {     text-decoration: none;     color: var(--color-main);     display: block; }     .card:hover .card__title {         text-decoration: underline;     }      .card__image {         width: 100%;         display: block;         height: 100px;         background: var(--color-gray);         margin-bottom: var(--padding);     }      .card__title {         margin: 0 0 var(--padding);     }      .card__summary {         margin: 0;         color: var(--color-gray);     } <\/code><\/pre>\n<p>  <\/p>\n<h2>F. \u041f\u043e\u0435\u0437\u0434\u043a\u0438 \u043d\u0430 \u043c\u0435\u0442\u0440\u043e<\/h2>\n<p>  <\/p>\n<h4>\u0423\u0441\u043b\u043e\u0432\u0438\u0435<\/h4>\n<p>  \u0415\u0441\u0442\u044c \u0434\u0435\u0432\u043e\u043f\u0441 \u041f\u0435\u0442\u044f. \u041d\u0430 \u0440\u0430\u0431\u043e\u0442\u0435 \u0435\u043c\u0443 \u043d\u0443\u0436\u043d\u043e \u0434\u0435\u0436\u0443\u0440\u0438\u0442\u044c \u0432 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043d\u044b\u0435 \u0434\u043d\u0438 \u0432 \u0442\u0435\u0447\u0435\u043d\u0438\u0435 \u043f\u043e\u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0445 100 \u0434\u043d\u0435\u0439. \u041d\u0430 \u0440\u0430\u0431\u043e\u0442\u0443 \u041f\u0435\u0442\u044f \u0434\u043e\u0431\u0438\u0440\u0430\u0435\u0442\u0441\u044f \u043d\u0430 \u043c\u0435\u0442\u0440\u043e. \u0412 \u043c\u0435\u0442\u0440\u043e \u0432\u0432\u0435\u043b\u0438 \u0431\u0438\u043b\u0435\u0442\u044b-\u0430\u0431\u043e\u043d\u0435\u043c\u0435\u043d\u0442\u044b, \u0434\u0435\u0439\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u0435 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043d\u043e\u0435 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0434\u043d\u0435\u0439 \u0441\u043e \u0434\u043d\u044f \u043f\u0435\u0440\u0432\u043e\u0439 \u043f\u043e\u0435\u0437\u0434\u043a\u0438 \u043f\u043e \u043d\u0438\u043c. \u0427\u0435\u043c \u0431\u043e\u043b\u044c\u0448\u0435 \u0434\u043b\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u044c \u0441\u0440\u043e\u043a\u0430 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u044f \u0431\u0438\u043b\u0435\u0442\u0430, \u0442\u0435\u043c \u043c\u0435\u043d\u044c\u0448\u0435 \u0441\u0442\u043e\u0438\u043c\u043e\u0441\u0442\u044c \u0432 \u043f\u0435\u0440\u0435\u0441\u0447\u0435\u0442\u0435 \u043d\u0430 \u0434\u0435\u043d\u044c. \u041d\u0443\u0436\u043d\u043e \u043f\u043e\u043c\u043e\u0447\u044c \u041f\u0435\u0442\u0435 \u0441\u044d\u043a\u043e\u043d\u043e\u043c\u0438\u0442\u044c \u0434\u0435\u043d\u044c\u0433\u0438 \u0438 \u0440\u0430\u0441\u0441\u0447\u0438\u0442\u0430\u0442\u044c, \u043a\u0430\u043a\u0438\u0435 \u0431\u0438\u043b\u0435\u0442\u044b \u043d\u0443\u0436\u043d\u043e \u0435\u043c\u0443 \u043a\u0443\u043f\u0438\u0442\u044c \u043d\u0430 \u0442\u0440\u0438 \u043c\u0435\u0441\u044f\u0446\u0430 \u0432\u043f\u0435\u0440\u0435\u0434, \u0443\u0447\u0438\u0442\u044b\u0432\u0430\u044f \u0433\u0440\u0430\u0444\u0438\u043a \u0435\u0433\u043e \u0434\u0435\u0436\u0443\u0440\u0441\u0442\u0432, \u0442\u0430\u043a\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c, \u0447\u0442\u043e\u0431\u044b \u0438\u0445 \u0441\u0443\u043c\u043c\u0430\u0440\u043d\u0430\u044f \u0441\u0442\u043e\u0438\u043c\u043e\u0441\u0442\u044c \u0431\u044b\u043b\u0430 \u043c\u0438\u043d\u0438\u043c\u0430\u043b\u044c\u043d\u043e \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0439. \u0410 \u0435\u0449\u0435 \u041f\u0435\u0442\u044f \u043d\u0435 \u043b\u044e\u0431\u0438\u0442 \u043d\u043e\u0441\u0438\u0442\u044c \u043c\u043d\u043e\u0433\u043e \u0431\u0438\u043b\u0435\u0442\u043e\u0432 \u0441 \u0441\u043e\u0431\u043e\u0439, \u0438 \u0435\u0441\u043b\u0438 \u0435\u0441\u0442\u044c \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0432\u0430\u0440\u0438\u0430\u043d\u0442\u043e\u0432 \u0431\u0438\u043b\u0435\u0442\u043e\u0432 \u0441 \u043e\u0434\u0438\u043d\u0430\u043a\u043e\u0432\u043e\u0439 \u043c\u0438\u043d\u0438\u043c\u0430\u043b\u044c\u043d\u043e\u0439 \u0441\u0442\u043e\u0438\u043c\u043e\u0441\u0442\u044c\u044e, \u0442\u043e \u041f\u0435\u0442\u0435 \u043d\u0443\u0436\u0435\u043d \u0442\u0430\u043a\u043e\u0439, \u0432 \u043a\u043e\u0442\u043e\u0440\u043e\u043c \u043c\u0435\u043d\u044c\u0448\u0435 \u0431\u0438\u043b\u0435\u0442\u043e\u0432. \u0415\u0441\u043b\u0438 \u0438 \u0442\u0430\u043a\u0438\u0445 \u0432\u0430\u0440\u0438\u0430\u043d\u0442\u043e\u0432 \u043e\u043a\u0430\u0436\u0435\u0442\u0441\u044f \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e (\u0441 \u043e\u0434\u0438\u043d\u0430\u043a\u043e\u0432\u043e\u0439 \u043c\u0438\u043d\u0438\u043c\u0430\u043b\u044c\u043d\u043e\u0439 \u0441\u0442\u043e\u0438\u043c\u043e\u0441\u0442\u044c\u044e \u0438 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e\u043c \u0431\u0438\u043b\u0435\u0442\u043e\u0432) \u2014 \u0442\u043e \u041f\u0435\u0442\u0435 \u043f\u043e\u0434\u043e\u0439\u0434\u0435\u0442 \u043b\u044e\u0431\u043e\u0439 \u0438\u0437 \u043d\u0438\u0445.<\/p>\n<p>  \u0412\u0430\u043c \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u043d\u0430\u043f\u0438\u0441\u0430\u0442\u044c \u0444\u0443\u043d\u043a\u0446\u0438\u044e <code>getCheapestTickets(days, tickets)<\/code>, \u043f\u0440\u0438\u043d\u0438\u043c\u0430\u044e\u0449\u0443\u044e \u043d\u0430 \u0432\u0445\u043e\u0434 \u0433\u0440\u0430\u0444\u0438\u043a \u0434\u0435\u0436\u0443\u0440\u0441\u0442\u0432 \u041f\u0435\u0442\u0438 (<code>days<\/code>) \u0438 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u044b\u0435 \u0432\u0430\u0440\u0438\u0430\u043d\u0442\u044b \u0431\u0438\u043b\u0435\u0442\u043e\u0432-\u0430\u0431\u043e\u043d\u0435\u043c\u0435\u043d\u0442\u043e\u0432 (<code>tickets<\/code>), \u0430 \u043d\u0430 \u0432\u044b\u0445\u043e\u0434\u0435 \u0434\u0430\u044e\u0449\u0443\u044e \u0441\u043f\u0438\u0441\u043e\u043a \u0431\u0438\u043b\u0435\u0442\u043e\u0432 (\u0432 \u0432\u0438\u0434\u0435 \u0438\u043d\u0434\u0435\u043a\u0441\u043e\u0432 \u0438\u0437 \u0432\u0445\u043e\u0434\u043d\u043e\u0433\u043e \u043c\u0430\u0441\u0441\u0438\u0432\u0430 \u0432\u0430\u0440\u0438\u0430\u043d\u0442\u043e\u0432 \u0431\u0438\u043b\u0435\u0442\u043e\u0432), \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043d\u0443\u0436\u043d\u043e \u043a\u0443\u043f\u0438\u0442\u044c \u041f\u0435\u0442\u0435.<\/p>\n<p>  \u0413\u0440\u0430\u0444\u0438\u043a \u0434\u0435\u0436\u0443\u0440\u0441\u0442\u0432 \u041f\u0435\u0442\u0438 \u0437\u0430\u0434\u0430\u043d \u0432 \u0432\u0438\u0434\u0435 \u043e\u0442\u0441\u043e\u0440\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u043e\u0433\u043e \u043c\u0430\u0441\u0441\u0438\u0432\u0430 \u0447\u0438\u0441\u0435\u043b (\u043e\u0442 1 \u0434\u043e 100 \u0432\u043a\u043b\u044e\u0447\u0438\u0442\u0435\u043b\u044c\u043d\u043e), \u043a\u0430\u0436\u0434\u043e\u0435 \u0438\u0437 \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u043e\u0431\u043e\u0437\u043d\u0430\u0447\u0430\u0435\u0442 \u043f\u043e\u0440\u044f\u0434\u043a\u043e\u0432\u044b\u0439 \u043d\u043e\u043c\u0435\u0440 \u0434\u043d\u044f \u0434\u0435\u0436\u0443\u0440\u0441\u0442\u0432\u0430:<\/p>\n<pre><code class=\"javascript\">[2, 5, 10, 45] \/\/ \u041f\u0435\u0442\u044f \u0434\u043e\u043b\u0436\u0435\u043d \u0434\u0435\u0436\u0443\u0440\u0438\u0442\u044c \u043d\u0430 \u0432\u0442\u043e\u0440\u043e\u0439, \u043f\u044f\u0442\u044b\u0439, \u0434\u0435\u0441\u044f\u0442\u044b\u0439 \u0438 \u0441\u043e\u0440\u043e\u043a \u043f\u044f\u0442\u044b\u0439 \u0434\u0435\u043d\u044c \u043e\u0442\u043d\u043e\u0441\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u0442\u0435\u043a\u0443\u0449\u0435\u0439 \u0434\u0430\u0442\u044b. <\/code><\/pre>\n<p>  \u041a\u0430\u0436\u0434\u044b\u0439 \u0431\u0438\u043b\u0435\u0442-\u0430\u0431\u043e\u043d\u0435\u043c\u0435\u043d\u0442 \u043e\u043f\u0438\u0441\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u043c \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u043e\u043c:<\/p>\n<pre><code class=\"javascript\">interface Ticket {     duration: number; \/\/ \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0434\u043d\u0435\u0439, \u0432 \u0442\u0435\u0447\u0435\u043d\u0438\u0435 \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u0431\u0438\u043b\u0435\u0442 \u0434\u0435\u0439\u0441\u0442\u0432\u0443\u0435\u0442 \u0441\u043e \u0434\u043d\u044f \u043f\u0435\u0440\u0432\u043e\u0439 \u043f\u043e\u0435\u0437\u0434\u043a\u0438 \u043f\u043e \u043d\u0435\u043c\u0443, \u0432\u043a\u043b\u044e\u0447\u0430\u044f \u044d\u0442\u043e\u0442 \u0434\u0435\u043d\u044c (\u043e\u0442 1 \u0434\u043e 100 \u0432\u043a\u043b\u044e\u0447\u0438\u0442\u0435\u043b\u044c\u043d\u043e)     cost: number; \/\/ \u0441\u0442\u043e\u0438\u043c\u043e\u0441\u0442\u044c \u0431\u0438\u043b\u0435\u0442\u0430 (\u043e\u0442 1 \u0434\u043e 100 \u0432\u043a\u043b\u044e\u0447\u0438\u0442\u0435\u043b\u044c\u043d\u043e) } <\/code><\/pre>\n<p>  \u041a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0432\u0430\u0440\u0438\u0430\u043d\u0442\u043e\u0432 \u0431\u0438\u043b\u0435\u0442\u043e\u0432 \u043d\u0435 \u0431\u043e\u043b\u0435\u0435 10, \u0438 \u0433\u0430\u0440\u0430\u043d\u0442\u0438\u0440\u0443\u0435\u0442\u0441\u044f, \u0447\u0442\u043e \u0432\u0441\u0435 \u0431\u0438\u043b\u0435\u0442\u044b \u0438\u043c\u0435\u044e\u0442 \u0440\u0430\u0437\u043d\u0443\u044e \u0441\u0442\u043e\u0438\u043c\u043e\u0441\u0442\u044c, \u043f\u0440\u0438\u0447\u0435\u043c \u0447\u0435\u043c \u0431\u043e\u043b\u044c\u0448\u0435\u0435 \u0447\u0438\u0441\u043b\u043e \u0434\u043d\u0435\u0439 \u0434\u0435\u0439\u0441\u0442\u0432\u0443\u0435\u0442 \u0431\u0438\u043b\u0435\u0442, \u0442\u0435\u043c \u043d\u0438\u0436\u0435 \u0435\u0433\u043e \u0441\u0442\u043e\u0438\u043c\u043e\u0441\u0442\u044c \u0432 \u043f\u0435\u0440\u0435\u0441\u0447\u0435\u0442\u0435 \u043d\u0430 \u043e\u0434\u0438\u043d \u0434\u0435\u043d\u044c.<\/p>\n<p>  \u0420\u0435\u0448\u0435\u043d\u0438\u0435 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u043f\u0440\u0435\u0434\u043e\u0441\u0442\u0430\u0432\u0438\u0442\u044c \u0432 \u0432\u0438\u0434\u0435 CommonJS-\u043c\u043e\u0434\u0443\u043b\u044f:<\/p>\n<pre><code class=\"javascript\">module.exports = function (days, tickets) {     \/\/ Your code here. }; <\/code><\/pre>\n<p>  \u0412\u0435\u0440\u0434\u0438\u043a\u0442 RE \u0442\u0430\u043a\u0436\u0435 \u043e\u0437\u043d\u0430\u0447\u0430\u0435\u0442, \u0447\u0442\u043e \u043e\u0442\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u043d\u043e\u0435 \u0440\u0435\u0448\u0435\u043d\u0438\u0435 \u043d\u0435\u0432\u0435\u0440\u043d\u043e.<\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">\u0414\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0435 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b<\/b><\/p>\n<div class=\"spoiler_text\"><b>\u041f\u0440\u0438\u043c\u0435\u0440\u044b<\/b><\/p>\n<div class=\"scrollable-table\">\n<table>\n<tr>\n<td><b>\u0412\u0432\u043e\u0434<\/b><\/td>\n<td><b>\u0412\u044b\u0432\u043e\u0434<\/b><\/td>\n<\/tr>\n<tr>\n<td>\n<pre><code class=\"javascript\">const days = [1, 2, 4, 6, 7, 8, 9, 10, 20]; const tickets = [     { cost: 3, duration: 1 },     { cost: 10, duration: 7 },     { cost: 20, duration: 30 } ]; <\/code><\/pre>\n<\/td>\n<td><code>[0, 0, 1]<\/code><\/td>\n<\/tr>\n<\/table>\n<\/div>\n<p>  \u0412 \u043f\u0435\u0440\u0432\u044b\u0439 \u0438 \u0432\u0442\u043e\u0440\u043e\u0439 \u0434\u043d\u0438 \u041f\u0435\u0442\u0435 \u043d\u0443\u0436\u043d\u043e \u043a\u0443\u043f\u0438\u0442\u044c \u043e\u0434\u043d\u043e\u0434\u043d\u0435\u0432\u043d\u044b\u0435 \u0431\u0438\u043b\u0435\u0442\u044b, \u0432 \u0447\u0435\u0442\u0432\u0435\u0440\u0442\u044b\u0439 \u0434\u0435\u043d\u044c \u0441\u0435\u043c\u0438\u0434\u043d\u0435\u0432\u043d\u044b\u0439, \u043d\u0430 \u0434\u0432\u0430\u0434\u0446\u0430\u0442\u044b\u0439 \u0434\u0435\u043d\u044c \u0435\u0449\u0435 \u0440\u0430\u0437 \u043e\u0434\u043d\u043e\u0434\u043d\u0435\u0432\u043d\u044b\u0439.<\/p>\n<p>  \u0421\u0443\u043c\u043c\u0430\u0440\u043d\u0430\u044f \u0441\u0442\u043e\u0438\u043c\u043e\u0441\u0442\u044c \u0442\u0430\u043a\u0438\u0445 \u0431\u0438\u043b\u0435\u0442\u043e\u0432 \u0431\u0443\u0434\u0435\u0442 \u043c\u0438\u043d\u0438\u043c\u0430\u043b\u044c\u043d\u043e \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0439: <code>19<\/code>.<\/div>\n<\/div>\n<p>  <\/p>\n<h4>\u0420\u0435\u0448\u0435\u043d\u0438\u0435<\/h4>\n<p>  \u041e\u0434\u043d\u043e \u0438\u0437 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u044b\u0445 \u0440\u0435\u0448\u0435\u043d\u0438\u0439 \u2014 \u043c\u0435\u0442\u043e\u0434\u043e\u043c \u0434\u0438\u043d\u0430\u043c\u0438\u0447\u0435\u0441\u043a\u043e\u0433\u043e \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f, \u0430 \u0438\u043c\u0435\u043d\u043d\u043e:<\/p>\n<p>  1. \u0411\u0435\u0440\u0435\u043c \u043f\u0435\u0440\u0432\u044b\u0439 \u0434\u0435\u043d\u044c \u0434\u0435\u0436\u0443\u0440\u0441\u0442\u0432\u0430 \u041f\u0435\u0442\u0438.<br \/>  2. \u0427\u0442\u043e\u0431\u044b \u043d\u0430\u0439\u0442\u0438 \u043b\u0443\u0447\u0448\u0435\u0435 \u0440\u0435\u0448\u0435\u043d\u0438\u0435 \u0434\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u0434\u043d\u044f, \u0440\u0430\u0441\u0441\u0447\u0438\u0442\u0430\u0435\u043c \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u044b\u0435 \u0432\u0430\u0440\u0438\u0430\u043d\u0442\u044b \u043f\u043e \u043a\u0430\u0436\u0434\u043e\u043c\u0443 \u0438\u0437 \u0431\u0438\u043b\u0435\u0442\u043e\u0432. \u041a\u0430\u0436\u0434\u044b\u0439 \u0442\u0430\u043a\u043e\u0439 \u0432\u0430\u0440\u0438\u0430\u043d\u0442 \u0441\u043a\u043b\u0430\u0434\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u0438\u0437 \u0441\u0442\u043e\u0438\u043c\u043e\u0441\u0442\u0438 \u0431\u0438\u043b\u0435\u0442\u0430 \u0438 \u0441\u0442\u043e\u0438\u043c\u043e\u0441\u0442\u0438 \u043b\u0443\u0447\u0448\u0435\u0433\u043e \u0440\u0435\u0448\u0435\u043d\u0438\u044f \u0432 \u0434\u0435\u043d\u044c \u0434\u0435\u0436\u0443\u0440\u0441\u0442\u0432\u0430, \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u0433\u043e \u0437\u0430 \u0434\u043d\u0435\u043c \u043e\u043a\u043e\u043d\u0447\u0430\u043d\u0438\u044f \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u044f \u044d\u0442\u043e\u0433\u043e \u0431\u0438\u043b\u0435\u0442\u0430. \u0412\u0442\u043e\u0440\u043e\u0435 \u0441\u043b\u0430\u0433\u0430\u0435\u043c\u043e\u0435 \u0440\u0430\u0441\u0441\u0447\u0438\u0442\u044b\u0432\u0430\u0435\u043c \u0430\u043d\u0430\u043b\u043e\u0433\u0438\u0447\u043d\u043e, \u0442\u0430\u043a\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c \u043f\u043e\u043b\u0443\u0447\u0430\u044f \u0440\u0435\u043a\u0443\u0440\u0441\u0438\u044e.<br \/>  3. \u0414\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u0443\u0447\u0438\u0442\u044b\u0432\u0430\u0435\u043c \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0431\u0438\u043b\u0435\u0442\u043e\u0432, \u0435\u0441\u043b\u0438 \u0442\u0430\u043a\u0438\u0445 \u0432\u0430\u0440\u0438\u0430\u043d\u0442\u043e\u0432 \u043e\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e.<br \/>  4. \u041e\u0441\u043e\u0431\u043e\u0435 \u0432\u043d\u0438\u043c\u0430\u043d\u0438\u0435 \u0441\u043b\u0435\u0434\u0443\u0435\u0442 \u0443\u0434\u0435\u043b\u0438\u0442\u044c \u043a\u044d\u0448\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044e \u0440\u0435\u0448\u0435\u043d\u0438\u0439 \u0432 \u043f\u0440\u043e\u043c\u0435\u0436\u0443\u0442\u043e\u0447\u043d\u044b\u0445 \u0434\u043d\u044f\u0445.<\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">solution.js<\/b><\/p>\n<div class=\"spoiler_text\">\n<pre><code class=\"javascript\">module.exports = function (days, tickets) {     if (days.length === 0 || tickets.length === 0) {         return [];     }      tickets = tickets         .map((ticket, idx) =&gt; ({             ...ticket,             idx         }))         .sort((a, b) =&gt; a.duration - b.duration);      const daysSolutions = new Map();      function getDaySolution(idx) {         if (daysSolutions.has(idx)) {             return daysSolutions.get(idx);         }          const solution = {             totalCost: Number.POSITIVE_INFINITY,             totalTickets: Number.POSITIVE_INFINITY,             ticketToBuy: null,             next: null         };          for (let i = 0, j = idx; i &lt; tickets.length &amp;&amp; j &lt; days.length; i++) {             while (j &lt; days.length &amp;&amp; days[j] &lt; days[idx] + tickets[i].duration) {                 j++;             }              const nextDaySolution = j &lt; days.length ? getDaySolution(j) : null;             let totalCost = tickets[i].cost;             let totalTickets = 1;              if (nextDaySolution) {                 totalCost += nextDaySolution.totalCost;                 totalTickets += nextDaySolution.totalTickets;             }              if (                 totalCost &lt; solution.totalCost ||                 (totalCost === solution.totalCost &amp;&amp; totalTickets &lt; solution.totalTickets)             ) {                 solution.totalCost = totalCost;                 solution.totalTickets = totalTickets;                 solution.ticketToBuy = tickets[i].idx;                 solution.next = nextDaySolution;             }         }          daysSolutions.set(idx, solution);          return solution;     }      let solution = getDaySolution(0);     const res = [];      while (solution) {         res.push(solution.ticketToBuy);         solution = solution.next;     }      return res; };<\/code><\/pre>\n<\/div>\n<\/div>\n<p>  <\/p>\n<hr>\n<p>  <i><a href=\"https:\/\/habr.com\/ru\/company\/yandex\/blog\/457262\/\">\u0412\u043e\u0442 \u0441\u0441\u044b\u043b\u043a\u0430<\/a> \u043d\u0430 \u0440\u0430\u0437\u0431\u043e\u0440 \u0437\u0430\u0434\u0430\u0447 \u0434\u043b\u044f \u0431\u044d\u043a\u0435\u043d\u0434-\u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u043e\u0432.<\/i><\/div>\n<p>               <script class=\"js-mediator-script\">!function(e){function t(t,n){if(!(n in e)){for(var r,a=e.document,i=a.scripts,o=i.length;o--;)if(-1!==i[o].src.indexOf(t)){r=i[o];break}if(!r){r=a.createElement(\"script\"),r.type=\"text\/javascript\",r.async=!0,r.defer=!0,r.src=t,r.charset=\"UTF-8\";var d=function(){var e=a.getElementsByTagName(\"script\")[0];e.parentNode.insertBefore(r,e)};\"[object Opera]\"==e.opera?a.addEventListener?a.addEventListener(\"DOMContentLoaded\",d,!1):e.attachEvent(\"onload\",d):d()}}}t(\"\/\/mediator.mail.ru\/script\/2820404\/\",\"_mediator\")}(window);<\/script>     <br \/> \u0441\u0441\u044b\u043b\u043a\u0430 \u043d\u0430 \u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b \u0441\u0442\u0430\u0442\u044c\u0438 <a href=\"https:\/\/habr.com\/ru\/company\/yandex\/blog\/460139\/\"> https:\/\/habr.com\/ru\/company\/yandex\/blog\/460139\/<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"\n<div class=\"post__text post__text-html js-mediator-article\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/qf\/hb\/1r\/qfhb1rqfdtnhgwe41of_hocrl2q.png\" align=\"right\" width=\"350\"> \u041d\u0430 \u0434\u043d\u044f\u0445 \u043f\u043e\u0431\u0435\u0434\u0438\u0442\u0435\u043b\u0438 \u0447\u0435\u043c\u043f\u0438\u043e\u043d\u0430\u0442\u0430 \u043f\u043e \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044e, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0437\u0430\u0432\u0435\u0440\u0448\u0438\u043b\u0441\u044f \u0432 \u043d\u0430\u0447\u0430\u043b\u0435 \u043b\u0435\u0442\u0430, \u043f\u043e\u043b\u0443\u0447\u0438\u043b\u0438 \u0437\u0430\u0441\u043b\u0443\u0436\u0435\u043d\u043d\u044b\u0435 \u043f\u0440\u0438\u0437\u044b. \u0414\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u043c\u044b \u043f\u043e\u0437\u0432\u0430\u043b\u0438 \u0438\u0445, \u0430 \u0442\u0430\u043a\u0436\u0435 \u0432\u0441\u0435\u0445 \u043e\u0441\u0442\u0430\u043b\u044c\u043d\u044b\u0445 \u0444\u0438\u043d\u0430\u043b\u0438\u0441\u0442\u043e\u0432 \u0438\u0437 \u0442\u043e\u043f-20 \u043a\u0430\u0436\u0434\u043e\u0433\u043e \u043d\u0430\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u0432 \u043c\u043e\u0441\u043a\u043e\u0432\u0441\u043a\u0438\u0439 \u043e\u0444\u0438\u0441 \u042f\u043d\u0434\u0435\u043a\u0441\u0430. \u0415\u0449\u0451 \u0440\u0430\u0437 \u043f\u043e\u0437\u0434\u0440\u0430\u0432\u043b\u044f\u0435\u043c \u0442\u0435\u0445, \u043a\u0442\u043e \u0441\u0443\u043c\u0435\u043b \u0432\u044b\u0439\u0442\u0438 \u0432 \u0444\u0438\u043d\u0430\u043b.<\/p>\n<p>  \u0422\u0435\u043c \u0432\u0440\u0435\u043c\u0435\u043d\u0435\u043c \u043c\u044b \u043f\u043e\u0434\u0433\u043e\u0442\u043e\u0432\u0438\u043b\u0438 \u0440\u0430\u0437\u0431\u043e\u0440 \u0437\u0430\u0434\u0430\u0447 \u0447\u0435\u043c\u043f\u0438\u043e\u043d\u0430\u0442\u0430, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043f\u0440\u0435\u0434\u043b\u0430\u0433\u0430\u043b\u0438\u0441\u044c \u0444\u0440\u043e\u043d\u0442\u0435\u043d\u0434-\u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0430\u043c. \u042d\u0442\u043e \u0437\u0430\u0434\u0430\u0447\u0438 \u0438\u0437 \u043a\u0432\u0430\u043b\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u043e\u043d\u043d\u043e\u0433\u043e \u044d\u0442\u0430\u043f\u0430. \u041d\u0430\u043f\u043e\u043c\u0438\u043d\u0430\u0435\u043c, \u0447\u0442\u043e \u0447\u0435\u043c\u043f\u0438\u043e\u043d\u0430\u0442 \u043f\u0440\u043e\u0432\u043e\u0434\u0438\u043b\u0441\u044f \u043f\u043e \u0447\u0435\u0442\u044b\u0440\u0451\u043c \u043d\u0430\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f\u043c: \u0431\u044d\u043a\u0435\u043d\u0434, \u0444\u0440\u043e\u043d\u0442\u0435\u043d\u0434, \u043c\u0430\u0448\u0438\u043d\u043d\u043e\u0435 \u043e\u0431\u0443\u0447\u0435\u043d\u0438\u0435 \u0438 \u0430\u043d\u0430\u043b\u0438\u0442\u0438\u043a\u0430.<\/p>\n<h2>A. \u0413\u0440\u0430\u0434\u0443\u0441\u043d\u0438\u043a \u043f\u0440\u043e\u0431\u043e\u043a<\/h2>\n<p>  <\/p>\n<h4>\u0423\u0441\u043b\u043e\u0432\u0438\u0435<\/h4>\n<p>  \u041f\u043e\u043b\u044c\u0437\u0443\u044f\u0441\u044c \u043d\u0430\u0432\u0438\u0433\u0430\u0442\u043e\u0440\u043e\u043c, \u043c\u043d\u043e\u0433\u0438\u0435 \u0432\u0438\u0434\u0435\u043b\u0438 \u00ab\u0433\u0440\u0430\u0434\u0443\u0441\u043d\u0438\u043a\u00bb \u043f\u0440\u0438 \u043f\u043e\u0441\u0442\u0440\u043e\u0435\u043d\u0438\u0438 \u0430\u0432\u0442\u043e\u043c\u043e\u0431\u0438\u043b\u044c\u043d\u043e\u0433\u043e \u043c\u0430\u0440\u0448\u0440\u0443\u0442\u0430. \u041e\u043d \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442 \u0441\u043e\u0431\u043e\u0439 \u0440\u0430\u0437\u043d\u043e\u0446\u0432\u0435\u0442\u043d\u0443\u044e \u043f\u0440\u044f\u043c\u0443\u044e, \u043d\u0430 \u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0430 \u0437\u0430\u0433\u0440\u0443\u0436\u0435\u043d\u043d\u043e\u0441\u0442\u044c \u0434\u043e\u0440\u043e\u0433 \u043d\u0430 \u043c\u0430\u0440\u0448\u0440\u0443\u0442\u0435. \u0412 \u044d\u0442\u043e\u0439 \u0437\u0430\u0434\u0430\u0447\u0435 \u043f\u0440\u0435\u0434\u043b\u0430\u0433\u0430\u0435\u0442\u0441\u044f \u043d\u0430\u043f\u0438\u0441\u0430\u0442\u044c \u0444\u0443\u043d\u043a\u0446\u0438\u044e, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u0430\u0434\u0430\u043f\u0442\u0438\u0440\u0443\u0435\u0442 \u0434\u0430\u043d\u043d\u044b\u0435 \u00ab\u0433\u0440\u0430\u0434\u0443\u0441\u043d\u0438\u043a\u0430\u00bb \u0434\u043b\u044f \u0440\u0430\u0437\u043d\u044b\u0445 \u0440\u0430\u0437\u043c\u0435\u0440\u043e\u0432 \u044d\u043a\u0440\u0430\u043d\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-292063","post","type-post","status-publish","format-standard","hentry"],"_links":{"self":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/292063","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=292063"}],"version-history":[{"count":0,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/292063\/revisions"}],"wp:attachment":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=292063"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=292063"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=292063"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}