{"id":373944,"date":"2024-05-21T05:48:20","date_gmt":"2024-05-21T05:48:20","guid":{"rendered":"http:\/\/savepearlharbor.com\/?p=373944"},"modified":"-0001-11-30T00:00:00","modified_gmt":"-0001-11-29T21:00:00","slug":"","status":"publish","type":"post","link":"https:\/\/savepearlharbor.com\/?p=373944","title":{"rendered":"<span>\u0414\u0435\u0440\u0435\u0432\u043e \u043e\u0442\u0440\u0435\u0437\u043a\u043e\u0432<\/span>"},"content":{"rendered":"<div><!--[--><!--]--><\/div>\n<div id=\"post-content-body\">\n<div>\n<div class=\"article-formatted-body article-formatted-body article-formatted-body_version-2\">\n<div xmlns=\"http:\/\/www.w3.org\/1999\/xhtml\">\n<p>\u0412\u0441\u0435\u043c \u043f\u0440\u0438\u0432\u0435\u0442. \u0412 \u044d\u0442\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0435 \u044f \u0440\u0430\u0441\u0441\u043a\u0430\u0436\u0443 \u043f\u0440\u043e \u0434\u0435\u0440\u0435\u0432\u043e \u043e\u0442\u0440\u0435\u0437\u043a\u043e\u0432. \u0414\u0435\u0440\u0435\u0432\u043e \u043e\u0442\u0440\u0435\u0437\u043a\u043e\u0432 &#8212; \u044d\u0442\u043e \u043e\u0447\u0435\u043d\u044c \u043c\u043e\u0449\u043d\u0430\u044f \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0430 \u0434\u0430\u043d\u043d\u044b\u0445, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u0434\u0435\u043b\u0430\u0442\u044c \u043c\u043d\u043e\u0433\u043e \u0440\u0430\u0437\u043d\u044b\u0445 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0439 \u043d\u0430\u0434 \u043c\u0430\u0441\u0441\u0438\u0432\u043e\u043c \u0447\u0438\u0441\u0435\u043b. \u042f \u043f\u043e\u0441\u0442\u0430\u0440\u0430\u044e\u0441\u044c \u043f\u043e \u043f\u043e\u043b\u043e\u0447\u043a\u0430\u043c \u0440\u0430\u0437\u043b\u043e\u0436\u0438\u0442\u044c \u044d\u0442\u0443 \u0442\u0435\u043c\u0443 \u0438 \u043e\u0431\u044a\u044f\u0441\u043d\u0438\u0442\u044c \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u0438 \u0434\u0435\u0440\u0435\u0432\u0430 \u043e\u0442\u0440\u0435\u0437\u043a\u043e\u0432. \u0422\u0430\u043a\u0436\u0435 \u044f \u0440\u0430\u0437\u0431\u0435\u0440\u0443 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u043d\u0435\u0442\u0440\u0438\u0432\u0438\u0430\u043b\u044c\u043d\u044b\u0445 \u0437\u0430\u0434\u0430\u0447 \u043d\u0430 \u0434\u0435\u0440\u0435\u0432\u043e \u043e\u0442\u0440\u0435\u0437\u043a\u043e\u0432. \u041f\u043e\u043c\u0438\u043c\u043e \u0441\u0430\u043c\u043e\u0433\u043e \u0434\u0435\u0440\u0435\u0432\u0430 \u043e\u0442\u0440\u0435\u0437\u043a\u043e\u0432 \u044f \u0440\u0430\u0441\u0441\u043a\u0430\u0436\u0443 \u0438 \u043f\u0440\u043e \u0441\u0432\u044f\u0437\u0430\u043d\u043d\u044b\u0435 \u0442\u0435\u043c\u044b: \u0434\u0435\u0440\u0435\u0432\u043e \u0424\u0435\u043d\u0432\u0438\u043a\u0430, \u0440\u0430\u0437\u0440\u0435\u0436\u0435\u043d\u043d\u044b\u0435 \u0442\u0430\u0431\u043b\u0438\u0446\u044b.<\/p>\n<p>\u041c\u0430\u0442\u0435\u0440\u0438\u0430\u043b \u0431\u044b\u043b \u043f\u043e\u0434\u0433\u043e\u0442\u043e\u0432\u043b\u0435\u043d \u043d\u0430 \u043e\u0441\u043d\u043e\u0432\u0435 \u043b\u0435\u043a\u0446\u0438\u0439 \u041f\u0430\u0432\u043b\u0430 \u041c\u0430\u0432\u0440\u0438\u043d\u0430 (<a href=\"https:\/\/www.youtube.com\/@pavelmavrin\" rel=\"noopener noreferrer nofollow\">\u041a\u0430\u043d\u0430\u043b \u043d\u0430 YouTube<\/a>), \u0441\u0442\u0430\u0442\u044c\u0438 \u043d\u0430 e-maxx (<a href=\"http:\/\/e-maxx.ru\/algo\/segment_tree\" rel=\"noopener noreferrer nofollow\">\u0421\u0442\u0430\u0442\u044c\u044f<\/a>) \u0438 \u043a\u0443\u0440\u0441\u0430 \u0410\u0438\u0421\u0414 \u043e\u0442 \u0422\u0438\u043d\u044c\u043a\u043e\u0444\u0444 (<a href=\"https:\/\/fintech.tinkoff.ru\/academy\/algorithms\/\" rel=\"noopener noreferrer nofollow\">\u041a\u0443\u0440\u0441<\/a>). \u041f\u0440\u0438\u043c\u0435\u0440\u044b \u043a\u043e\u0434\u0430 \u0431\u0443\u0434\u0443\u0442 \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u044b \u043d\u0430 C++.<\/p>\n<h2>\u041f\u0435\u0440\u0432\u0430\u044f \u0437\u0430\u0434\u0430\u0447\u0430<\/h2>\n<p><strong>\u0423\u0441\u043b\u043e\u0432\u0438\u0435<\/strong><br \/> \u0414\u0430\u043d \u043c\u0430\u0441\u0441\u0438\u0432 <em>arr<\/em> \u0446\u0435\u043b\u044b\u0445 \u0447\u0438\u0441\u0435\u043b \u0440\u0430\u0437\u043c\u0435\u0440\u043e\u043c <em>n<\/em>. \u041d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0432\u044b\u043f\u043e\u043b\u043d\u0438\u0442\u044c <em>m<\/em> \u0437\u0430\u043f\u0440\u043e\u0441\u043e\u0432. \u041a\u0430\u0436\u0434\u044b\u0439 \u0437\u0430\u043f\u0440\u043e\u0441 \u0432\u044b\u0433\u043b\u044f\u0434\u0438\u0442 \u0442\u0430\u043a:<\/p>\n<ul>\n<li>\n<p><code>sum(l,r)<\/code> &#8212; \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u043d\u0430\u0439\u0442\u0438 \u0441\u0443\u043c\u043c\u0443 \u043e\u0442\u0440\u0435\u0437\u043a\u0430 \u043e\u0442 <code>l<\/code> \u0434\u043e <code>r - 1<\/code> \u0438 \u0432\u0435\u0440\u043d\u0443\u0442\u044c \u0435\u0435. \u0424\u043e\u0440\u043c\u0430\u043b\u044c\u043d\u043e: <code>sum(l,r) = a[l] + a[l + 1] + ... + a[r - 1]<\/code><\/p>\n<\/li>\n<\/ul>\n<p><strong>\u0420\u0435\u0448\u0435\u043d\u0438\u0435<\/strong><br \/> \u0412\u044b\u0447\u0438\u0441\u043b\u0438\u043c <a href=\"https:\/\/ru.wikipedia.org\/wiki\/%D0%9F%D1%80%D0%B5%D1%84%D0%B8%D0%BA%D1%81%D0%BD%D0%B0%D1%8F_%D1%81%D1%83%D0%BC%D0%BC%D0%B0\" rel=\"noopener noreferrer nofollow\">\u043f\u0440\u0435\u0444\u0438\u043a\u0441\u043d\u044b\u0435 \u0441\u0443\u043c\u043c\u044b<\/a> \u043e\u0442 \u043c\u0430\u0441\u0441\u0438\u0432\u0430 <em>arr<\/em>. \u041f\u043e\u043b\u0443\u0447\u0435\u043d\u043d\u044b\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u0432\u043d\u0435\u0441\u0435\u043c \u0432 \u043c\u0430\u0441\u0441\u0438\u0432 <code>prefix<\/code><br \/> \u0422\u043e\u0433\u0434\u0430 \u043e\u0442\u0432\u0435\u0442 \u043d\u0430 \u043a\u0430\u0436\u0434\u044b\u0439 \u0437\u0430\u043f\u0440\u043e\u0441 <code>sum(l,r)<\/code> \u0431\u0443\u0434\u0435\u0442 \u0432\u044b\u0433\u043b\u044f\u0434\u0435\u0442\u044c \u0442\u0430\u043a: <code>sum(l,r) = prefix[r] - prefix[l]<\/code><\/p>\n<p><strong>\u041a\u043e\u0434<\/strong><\/p>\n<pre><code class=\"cpp\">vector&lt;int> arr;   vector&lt;int> prefix;      void build() {   prefix.push_back(0);   int b = 0;   for (int i: arr) {   b += i;   prefix.push_back(b);   }   }      int sum(int l, int r) {   return prefix[r] - prefix[l];   } <\/code><\/pre>\n<p><strong>\u0421\u043b\u043e\u0436\u043d\u043e\u0441\u0442\u044c<\/strong><br \/> \u041f\u043e\u0441\u0442\u0440\u043e\u0435\u043d\u0438\u0435 \u043f\u0440\u0435\u0444\u0438\u043a\u0441\u043d\u044b\u0445 \u0441\u0443\u043c\u043c \u0438\u043c\u0435\u0435\u0442 \u0441\u043b\u043e\u0436\u043d\u043e\u0441\u0442\u044c <code>O(n)<\/code>, \u0430 \u0441\u0430\u043c \u043e\u0442\u0432\u0435\u0442 \u043d\u0430 \u0437\u0430\u043f\u0440\u043e\u0441 \u0431\u0443\u0434\u0435\u0442 \u0437\u0430 <code>O(1)<\/code><\/p>\n<h2>\u0412\u0442\u043e\u0440\u0430\u044f \u0437\u0430\u0434\u0430\u0447\u0430<\/h2>\n<p><strong>\u0423\u0441\u043b\u043e\u0432\u0438\u0435<\/strong> \u0434\u043e\u043f\u043e\u043b\u043d\u044f\u0435\u0442\u0441\u044f<br \/> \u0414\u0430\u043d \u043c\u0430\u0441\u0441\u0438\u0432 <em>arr<\/em> \u0446\u0435\u043b\u044b\u0445 \u0447\u0438\u0441\u0435\u043b \u0440\u0430\u0437\u043c\u0435\u0440\u043e\u043c <em>n<\/em>. \u041d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0432\u044b\u043f\u043e\u043b\u043d\u0438\u0442\u044c <em>m<\/em> \u0437\u0430\u043f\u0440\u043e\u0441\u043e\u0432. \u041a\u0430\u0436\u0434\u044b\u0439 \u0437\u0430\u043f\u0440\u043e\u0441 \u0432\u044b\u0433\u043b\u044f\u0434\u0438\u0442 \u0442\u0430\u043a:<\/p>\n<ul>\n<li>\n<p><code>sum(l,r)<\/code> &#8212; \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u043d\u0430\u0439\u0442\u0438 \u0441\u0443\u043c\u043c\u0443 \u043e\u0442\u0440\u0435\u0437\u043a\u0430 \u043e\u0442 <code>l<\/code> \u0434\u043e <code>r - 1<\/code> \u0438 \u0432\u0435\u0440\u043d\u0443\u0442\u044c \u0435\u0435. \u0424\u043e\u0440\u043c\u0430\u043b\u044c\u043d\u043e: <code>sum(l,r) = a[l] + a[l + 1] + ... + a[r - 1]<\/code><\/p>\n<\/li>\n<li>\n<p><code>set(i, v)<\/code> &#8212; \u043c\u0435\u043d\u044f\u0435\u0442 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0443 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u0430 <code>arr[i]<\/code> \u043d\u0430 <code>v<\/code><\/p>\n<\/li>\n<\/ul>\n<p>\u0412 \u0442\u0430\u043a\u043e\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 \u043f\u0440\u0435\u0444\u0438\u043a\u0441\u043d\u044b\u0445 \u0441\u0443\u043c\u043c \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043d\u0435\u043e\u043f\u0442\u0438\u043c\u0430\u043b\u044c\u043d\u044b\u043c \u0440\u0435\u0448\u0435\u043d\u0438\u0435\u043c, \u043f\u043e\u0442\u043e\u043c\u0443 \u0447\u0442\u043e, \u043a\u043e\u0433\u0434\u0430 \u0443 \u043d\u0430\u0441 \u043c\u0435\u043d\u044f\u0435\u0442\u0441\u044f \u044d\u043b\u0435\u043c\u0435\u043d\u0442 <code>arr[i]<\/code>, \u0442\u043e \u0432\u0441\u0435 \u043f\u0440\u0435\u0444\u0438\u043a\u0441\u043d\u044b\u0435 \u0441\u0443\u043c\u043c\u044b \u043d\u0430\u0445\u043e\u0434\u044f\u0449\u0438\u0435\u0441\u044f \u043f\u0440\u0430\u0432\u0435\u0435 \u044d\u0442\u043e\u0433\u043e \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u0430 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0442\u0430\u043a\u0436\u0435 \u043e\u0431\u043d\u043e\u0432\u0438\u0442\u044c. \u041f\u043e\u043b\u0443\u0447\u0430\u0435\u0442\u0441\u044f \u0437\u0430\u043f\u0440\u043e\u0441 \u043d\u0430 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0435 \u0431\u0443\u0434\u0435\u0442 \u0437\u0430 <code>O(n)<\/code><\/p>\n<pre><code class=\"cpp\">void set(int i, int v) {   arr[i] = v;   for (int j = i + 1; j &lt; prefix.size(); ++j) {   prefix[j] = prefix[j - 1] + arr[j];   }   } <\/code><\/pre>\n<p>\u0412 \u0442\u0430\u043a\u043e\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u043c\u043e\u0436\u043d\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c <strong>\u0434\u0435\u0440\u0435\u0432\u043e \u043e\u0442\u0440\u0435\u0437\u043a\u043e\u0432<\/strong>, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u0438\u0437\u043c\u0435\u043d\u044f\u0442\u044c \u044d\u043b\u0435\u043c\u0435\u043d\u0442 \u0438 \u043f\u043e\u043b\u0443\u0447\u0430\u0442\u044c \u0441\u0443\u043c\u043c\u0443 \u043d\u0430 \u043e\u0442\u0440\u0435\u0437\u043a\u0435 \u0437\u0430 <code>O(logn)<\/code><\/p>\n<h2>\u0414\u0435\u0440\u0435\u0432\u043e \u043e\u0442\u0440\u0435\u0437\u043a\u043e\u0432<\/h2>\n<h3>\u041f\u043e\u0434\u0433\u043e\u0442\u043e\u0432\u043a\u0430<\/h3>\n<p>\u0414\u0435\u0440\u0435\u0432\u043e \u043e\u0442\u0440\u0435\u0437\u043a\u043e\u0432 &#8212; \u044d\u0442\u043e \u0434\u0435\u0440\u0435\u0432\u043e, \u043a\u0430\u043a \u0431\u044b \u0441\u0442\u0440\u0430\u043d\u043d\u043e \u044d\u0442\u043e \u043d\u0435 \u0437\u0432\u0443\u0447\u0430\u043b\u043e. \u041c\u044b \u0445\u043e\u0442\u0438\u043c, \u0447\u0442\u043e\u0431\u044b \u044d\u0442\u043e \u0434\u0435\u0440\u0435\u0432\u043e \u0432\u044b\u0433\u043b\u044f\u0434\u0435\u043b\u043e \u043f\u0440\u0438\u044f\u0442\u043d\u043e \u0438 \u0443\u0434\u043e\u0431\u043d\u043e. \u041f\u043e\u044d\u0442\u043e\u043c\u0443 \u0441\u0434\u0435\u043b\u0430\u0435\u043c \u043d\u0430\u0448\u0435 \u0434\u0435\u0440\u0435\u0432\u043e <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\" rel=\"noopener noreferrer nofollow\">\u0434\u0432\u043e\u0438\u0447\u043d\u044b\u043c \u0434\u0435\u0440\u0435\u0432\u043e\u043c<\/a>&#8212; \u0442\u043e \u0435\u0441\u0442\u044c \u0434\u0435\u0440\u0435\u0432\u043e\u043c, \u0443 \u043a\u043e\u0442\u043e\u0440\u043e\u0433\u043e \u043a\u0430\u0436\u0434\u044b\u0439 \u0443\u0437\u0435\u043b \u0438\u043c\u0435\u0435\u0442 \u043d\u0435 \u0431\u043e\u043b\u0435\u0435 \u0434\u0432\u0443\u0445 \u043f\u043e\u0442\u043e\u043c\u043a\u043e\u0432. \u041d\u043e \u0432 \u043e\u0442\u043b\u0438\u0447\u0438\u0435 \u043e\u0442 \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u043e\u0433\u043e \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u044f \u0434\u0432\u043e\u0438\u0447\u043d\u043e\u0433\u043e \u0434\u0435\u0440\u0435\u0432\u0430 \u0443 \u043d\u0430\u0441 \u043a\u0430\u0436\u0434\u044b\u0439 \u0443\u0437\u0435\u043b \u0431\u0443\u0434\u0435\u0442 \u0438\u043c\u0435\u0442\u044c \u043b\u0438\u0431\u043e \u0434\u0432\u0443\u0445 \u043f\u043e\u0442\u043e\u043c\u043a\u043e\u0432, \u043b\u0438\u0431\u043e \u0432\u043e\u043e\u0431\u0449\u0435 \u043d\u0435 \u0438\u043c\u0435\u0442\u044c \u043f\u043e\u0442\u043e\u043c\u043a\u043e\u0432. \u0422\u0443\u0442 \u0432\u043e\u0437\u043d\u0438\u043a\u0430\u0435\u0442 \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0430, \u0447\u0442\u043e \u0435\u0441\u043b\u0438 \u0434\u043b\u0438\u043d\u0430 \u043c\u0430\u0441\u0441\u0438\u0432\u0430 <em>arr<\/em> \u043d\u0435 \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0441\u0442\u0435\u043f\u0435\u043d\u044c\u044e \u0434\u0432\u043e\u0439\u043a\u0438, \u0442\u043e \u0442\u043e\u0433\u0434\u0430 \u0434\u0435\u0440\u0435\u0432\u043e \u0431\u0443\u0434\u0435\u0442 \u0432\u044b\u0433\u043b\u044f\u0434\u0435\u0442\u044c \u043d\u0435 \u043e\u0447\u0435\u043d\u044c \u0443\u0434\u043e\u0431\u043d\u043e. \u041f\u043e\u044d\u0442\u043e\u043c\u0443 \u0434\u043b\u044f \u0443\u043f\u0440\u043e\u0449\u0435\u043d\u0438\u044f \u043c\u044b \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u043c \u043c\u0430\u0441\u0441\u0438\u0432 <strong>\u043d\u0443\u043b\u044f\u043c\u0438<\/strong>, \u043f\u043e\u043a\u0430 \u0435\u0433\u043e \u0434\u043b\u0438\u043d\u0430 \u043d\u0435 \u0441\u0442\u0430\u043d\u0435\u0442 \u0440\u0430\u0432\u043d\u0430 <strong>\u0441\u0442\u0435\u043f\u0435\u043d\u0438 \u0434\u0432\u043e\u0439\u043a\u0438<\/strong>. \u0412 \u0442\u0435\u043e\u0440\u0438\u0438, \u0435\u0441\u043b\u0438 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0441\u044d\u043a\u043e\u043d\u043e\u043c\u0438\u0442\u044c \u043f\u0430\u043c\u044f\u0442\u044c, \u0442\u043e \u043c\u043e\u0436\u043d\u043e \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c\u0441\u044f \u0438 \u0444\u043e\u0440\u043c\u0430\u0442\u043e\u043c \u0434\u0435\u0440\u0435\u0432\u0430, \u0433\u0434\u0435 \u0434\u043b\u0438\u043d\u0430 \u043d\u0435 \u0440\u0430\u0432\u043d\u0430 \u0441\u0442\u0435\u043f\u0435\u043d\u0438 \u0434\u0432\u043e\u0439\u043a\u0438, \u043d\u043e \u043c\u044b \u0431\u0443\u0434\u0435\u043c \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0443\u0432\u0435\u043b\u0438\u0447\u0435\u043d\u0438\u0435 \u0434\u043b\u0438\u043d\u044b \u043c\u0430\u0441\u0441\u0438\u0432\u0430 \u0434\u043e \u0441\u0442\u0435\u043f\u0435\u043d\u0438 \u0434\u0432\u043e\u0439\u043a\u0438, \u0447\u0442\u043e\u0431\u044b \u0431\u044b\u043b\u043e \u0443\u0434\u043e\u0431\u043d\u0435\u0435.<\/p>\n<p>\u041f\u0440\u0438 \u0443\u0432\u0435\u043b\u0438\u0447\u0435\u043d\u0438\u0438 \u0434\u043b\u0438\u043d\u044b \u043c\u0430\u0441\u0441\u0438\u0432\u0430 \u0434\u043e \u0441\u0442\u0435\u043f\u0435\u043d\u0438 \u0434\u0432\u043e\u0439\u043a\u0438 \u043f\u043e\u043b\u0443\u0447\u0438\u0432\u0448\u0430\u044f\u0441\u044f \u0434\u043b\u0438\u043d\u0430 \u043d\u0435 \u043f\u0440\u0435\u0432\u044b\u0441\u0438\u0442 <code>2*n<\/code>, \u043f\u043e\u0442\u043e\u043c\u0443 \u0447\u0442\u043e \u0434\u0430\u0436\u0435 \u0435\u0441\u043b\u0438 \u0432\u0437\u044f\u0442\u044c \u0445\u0443\u0434\u0448\u0438\u0439 \u0441\u043b\u0443\u0447\u0430\u0439 (\u043a\u043e\u0433\u0434\u0430 \u0438\u0437\u043d\u0430\u0447\u0430\u043b\u044c\u043d\u0430\u044f \u0434\u043b\u0438\u043d\u0430 \u043c\u0430\u0441\u0441\u0438\u0432\u0430 \u043d\u0430 \u043e\u0434\u0438\u043d \u0431\u043e\u043b\u044c\u0448\u0435 \u0441\u0442\u0435\u043f\u0435\u043d\u0438 \u0434\u0432\u043e\u0439\u043a\u0438 <code>k<\/code>, \u0442\u043e \u0435\u0441\u0442\u044c <code>n = 2^k + 1<\/code>), \u0442\u043e \u043d\u0430\u043c \u043f\u0440\u0438\u0434\u0435\u0442\u0441\u044f \u0434\u043e\u0431\u0430\u0432\u0438\u0442\u044c <code>2^k - 1<\/code> \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432 \u0432 \u043c\u0430\u0441\u0441\u0438\u0432. \u041f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u0443\u0435\u043c \u0438 \u043f\u043e\u043b\u0443\u0447\u0438\u043c, \u0447\u0442\u043e \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u043d\u044b\u0445 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432 \u0431\u0443\u0434\u0435\u0442 \u0440\u0430\u0432\u043d\u043e <code>n - 2<\/code>. \u0423 \u043d\u0430\u0441 \u0431\u044b\u043b \u043c\u0430\u0441\u0441\u0438\u0432 \u0434\u043b\u0438\u043d\u043e\u0439 <code>n<\/code>, \u043c\u044b \u0432 \u0445\u0443\u0434\u0448\u0435\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u0434\u043e\u0431\u0430\u0432\u0438\u043b\u0438 <code>n - 2<\/code> \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432 \u0438 \u043f\u043e\u043b\u0443\u0447\u0438\u043b\u0438 <code>2n - 2<\/code> &#8212; \u043c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u0443\u044e \u0432\u0435\u0440\u0445\u043d\u044e\u044e \u0433\u0440\u0430\u043d\u0438\u0446\u0443.<\/p>\n<figure class=\"\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w780q1\/getpro\/habr\/post_images\/5fa\/dd0\/edf\/5fadd0edf6c435c207b0808f468dfbc6.jpg\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/post_images\/5fa\/dd0\/edf\/5fadd0edf6c435c207b0808f468dfbc6.jpg\" data-blurred=\"true\"\/><\/figure>\n<p>\u0422\u043e \u0435\u0441\u0442\u044c \u043f\u0435\u0440\u0435\u0434 \u0442\u0435\u043c, \u043a\u0430\u043a \u043f\u0440\u043e\u0434\u043e\u043b\u0436\u0430\u0442\u044c \u0440\u0430\u0431\u043e\u0442\u0443, \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0443\u0432\u0435\u043b\u0438\u0447\u0438\u0442\u044c \u0434\u043b\u0438\u043d\u0443 \u043c\u0430\u0441\u0441\u0438\u0432\u0430 \u0434\u043e \u0441\u0442\u0435\u043f\u0435\u043d\u0438 \u0434\u0432\u043e\u0439\u043a\u0438<\/p>\n<pre><code class=\"cpp\">#include &lt;cmath> void resize(vector&lt;int> &amp;arr) {   int s = (int) arr.size();   int new_s = (int) pow(2, ceil(log2(s)));   arr.resize(new_s, 0);   } <\/code><\/pre>\n<h3>\u0421\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0430 \u0434\u0435\u0440\u0435\u0432\u0430<\/h3>\n<p>\u0414\u0435\u0440\u0435\u0432\u043e \u043e\u0442\u0440\u0435\u0437\u043a\u043e\u0432 \u0434\u043b\u044f \u044d\u0442\u043e\u0439 \u0437\u0430\u0434\u0430\u0447\u0438 \u0431\u0443\u0434\u0435\u0442 \u0432\u044b\u0433\u043b\u044f\u0434\u0435\u0442\u044c \u0442\u0430\u043a:<\/p>\n<ul>\n<li>\n<p>\u043b\u0438\u0441\u0442\u044b \u0434\u0435\u0440\u0435\u0432\u0430 (\u0442\u043e \u0435\u0441\u0442\u044c \u0443\u0437\u043b\u044b \u0431\u0435\u0437 \u043f\u043e\u0442\u043e\u043c\u043a\u043e\u0432) &#8212; \u044d\u0442\u043e \u0438\u0437\u043d\u0430\u0447\u0430\u043b\u044c\u043d\u044b\u0439 \u043c\u0430\u0441\u0441\u0438\u0432 \u0447\u0438\u0441\u0435\u043b<\/p>\n<\/li>\n<li>\n<p>\u043a\u0430\u0436\u0434\u044b\u0439 \u0443\u0437\u0435\u043b, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043d\u0435 \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043b\u0438\u0441\u0442\u043e\u043c &#8212; \u044d\u0442\u043e \u0441\u0443\u043c\u043c\u0430 \u0434\u0432\u0443\u0445 \u0435\u0433\u043e \u043f\u043e\u0442\u043e\u043c\u043a\u043e\u0432<\/p>\n<\/li>\n<\/ul>\n<figure class=\"\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w780q1\/getpro\/habr\/post_images\/121\/85a\/7c6\/12185a7c6e69da07df2a6e0d750ae90b.jpg\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/post_images\/121\/85a\/7c6\/12185a7c6e69da07df2a6e0d750ae90b.jpg\" data-blurred=\"true\"\/><\/figure>\n<h3>\u041f\u043e\u0441\u0442\u0440\u043e\u0439\u043a\u0430 \u0434\u0435\u0440\u0435\u0432\u0430<\/h3>\n<p>\u041f\u043e\u0441\u0442\u0440\u043e\u0438\u0442\u044c \u0442\u0430\u043a\u043e\u0435 \u0434\u0435\u0440\u0435\u0432\u043e \u043c\u043e\u0436\u043d\u043e \u0437\u0430 <code>O(n)<\/code>. \u0414\u043b\u044f \u0445\u0440\u0430\u043d\u0435\u043d\u0438\u044f \u0434\u0435\u0440\u0435\u0432\u0430 \u0431\u0443\u0434\u0435\u043c \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u043e\u0431\u044b\u0447\u043d\u044b\u0439 \u043c\u0430\u0441\u0441\u0438\u0432 \u0434\u043b\u0438\u043d\u043e\u0439 <code>2n<\/code> (\u041d\u0430 \u0434\u0435\u043b\u0435 \u043e\u0434\u043d\u0430 \u043a\u043b\u0435\u0442\u043a\u0430 \u0432 \u043c\u0430\u0441\u0441\u0438\u0432\u0435 \u0431\u0443\u0434\u0435\u0442 \u043d\u0435 \u0437\u0430\u043d\u044f\u0442\u0430, \u043d\u043e \u044d\u0442\u043e \u043d\u0438 \u043d\u0430 \u0447\u0442\u043e \u043d\u0435 \u0432\u043b\u0438\u044f\u0435\u0442). \u0422\u0430\u043a\u0430\u044f \u0434\u043b\u0438\u043d\u0430, \u043f\u043e\u0442\u043e\u043c\u0443 \u0447\u0442\u043e \u043f\u0440\u0438 \u043f\u043e\u0434\u043d\u044f\u0442\u0438\u0435 \u0432\u0432\u0435\u0440\u0445 \u043f\u043e \u0443\u0440\u043e\u0432\u043d\u044f\u043c \u0434\u0435\u0440\u0435\u0432\u0430 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432 \u043d\u0430 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043d\u043e\u043c \u0443\u0440\u043e\u0432\u043d\u0435 \u0432 \u0434\u0432\u0430 \u0440\u0430\u0437\u0430 \u043c\u0435\u043d\u044c\u0448\u0435, \u0447\u0435\u043c \u043d\u0430 \u0443\u0440\u043e\u0432\u043d\u0435 \u043d\u0438\u0436\u0435. \u0418 \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u0442\u0441\u044f \u0441\u0430\u043c\u044b\u0439 \u043d\u0438\u0436\u043d\u0438\u0439 \u0443\u0440\u043e\u0432\u0435\u043d\u044c \u0445\u0440\u0430\u043d\u0438\u0442 <code>n<\/code> \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432, \u043f\u0440\u0435\u0434\u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0438\u0439 <code>n\/2<\/code> \u0438 \u0442\u0430\u043a \u0434\u0430\u043b\u0435\u0435 \u0434\u043e <code>1<\/code>.  \u042d\u0442\u043e \u0433\u0435\u043e\u043c\u0435\u0442\u0440\u0438\u0447\u0435\u0441\u043a\u0430\u044f \u0443\u0431\u044b\u0432\u0430\u044e\u0449\u0430\u044f \u043f\u043e\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u044c. \u0415\u0441\u043b\u0438 \u043f\u043e\u0434\u0441\u0447\u0438\u0442\u0430\u0442\u044c \u0441\u0443\u043c\u043c\u0443, \u0442\u043e \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u0441\u044f <code>2n - 1<\/code>, \u043e\u043a\u0440\u0443\u0433\u043b\u0438\u043c \u0434\u043b\u044f \u0443\u0434\u043e\u0431\u0441\u0442\u0432\u0430 \u0434\u043e <code>2n<\/code>.<\/p>\n<p><strong>\u041a\u0430\u043a \u0445\u0440\u0430\u043d\u0438\u0442\u044c \u0434\u0435\u0440\u0435\u0432\u043e \u0432 \u043c\u0430\u0441\u0441\u0438\u0432\u0435?<\/strong> \u041e\u0447\u0435\u043d\u044c \u043f\u0440\u043e\u0441\u0442\u043e, \u0431\u0443\u0434\u0435\u043c \u0440\u0430\u0441\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0442\u044c \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u044b \u0441\u0432\u0435\u0440\u0445\u0443 \u0432\u043d\u0438\u0437, \u0441\u043b\u0435\u0432\u0430 \u043d\u0430\u043f\u0440\u0430\u0432\u043e. \u0422\u043e\u0433\u0434\u0430 \u043a\u043e\u0440\u043d\u0435\u0432\u043e\u0439 \u0443\u0437\u0435\u043b \u0443 \u043d\u0430\u0441 \u0431\u0443\u0434\u0435\u0442 \u0438\u043c\u0435\u0442\u044c \u0438\u043d\u0434\u0435\u043a\u0441 <code>0<\/code>, \u0435\u0433\u043e \u0434\u0435\u0442\u0438 <code>1<\/code> \u0438 <code>2<\/code> \u0438 \u0442\u0430\u043a \u0434\u0430\u043b\u0435\u0435 \u0432\u043d\u0438\u0437. \u0411\u043e\u043b\u0435\u0435 \u0444\u043e\u0440\u043c\u0430\u043b\u044c\u043d\u043e \u044d\u0442\u043e \u043c\u043e\u0436\u043d\u043e \u043e\u043f\u0438\u0441\u0430\u0442\u044c \u0442\u0430\u043a: <code>left of i = 2*i + 1<\/code> \u0438 <code>right of i = 2*i + 2<\/code><\/p>\n<p>\u0412 \u0442\u0430\u043a\u043e\u043c \u0441\u043b\u0443\u0447\u0430\u0435, \u0432\u0441\u0435 \u0447\u0435\u0442\u043d\u044b\u0435 \u0438\u043d\u0434\u0435\u043a\u0441\u044b, \u043a\u0440\u043e\u043c\u0435 \u043d\u0443\u043b\u044f, \u044f\u0432\u043b\u044f\u044e\u0442\u0441\u044f \u043f\u0440\u0430\u0432\u044b\u043c\u0438 \u0434\u0435\u0442\u044c\u043c\u0438, \u0430 \u043d\u0435\u0447\u0435\u0442\u043d\u044b\u0435 \u0438\u043d\u0434\u0435\u043a\u0441\u044b \u044f\u0432\u043b\u044f\u044e\u0442\u0441\u044f \u043b\u0435\u0432\u044b\u043c\u0438 \u0434\u0435\u0442\u044c\u043c\u0438.<\/p>\n<p>\u0418\u043d\u043e\u0433\u0434\u0430 \u043c\u043e\u0436\u043d\u043e \u0431\u0443\u0434\u0435\u0442 \u0443\u0432\u0438\u0434\u0435\u0442\u044c \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044e, \u0433\u0434\u0435 \u043a\u043e\u0440\u043d\u0435\u0432\u043e\u0439 \u0443\u0437\u0435\u043b \u0438\u043c\u0435\u0435\u0442 \u0438\u043d\u0434\u0435\u043a\u0441 <code>1<\/code>, \u0442\u0430\u043a \u0442\u043e\u0436\u0435 \u043c\u043e\u0436\u043d\u043e \u0434\u0435\u043b\u0430\u0442\u044c, \u043d\u043e \u043b\u0438\u0447\u043d\u043e \u0434\u043b\u044f \u043c\u0435\u043d\u044f \u0443\u0434\u043e\u0431\u043d\u0435\u0435 \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u0441 \u043d\u0443\u043b\u044f.<\/p>\n<figure class=\"\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w780q1\/getpro\/habr\/post_images\/e86\/fd0\/a85\/e86fd0a8539b2af88e93bffd47b31b14.jpg\" alt=\"\u0420\u044f\u0434\u043e\u043c \u0441 \u0432\u0435\u0440\u0448\u0438\u043d\u043e\u0439 \u0441\u043f\u0440\u0430\u0432\u0430 \u0443\u043a\u0430\u0437\u0430\u043d \u0435\u0435 \u0438\u043d\u0434\u0435\u043a\u0441, \u0441\u043f\u0440\u0430\u0432\u0430 \u0432 \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u043e\u043c \u0441\u0442\u043e\u043b\u0431\u0446\u0435 \u0443\u043a\u0430\u0437\u0430\u043d\u043e \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432 \u043d\u0430 \u0443\u0440\u043e\u0432\u043d\u0435 \" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/post_images\/e86\/fd0\/a85\/e86fd0a8539b2af88e93bffd47b31b14.jpg\" data-blurred=\"true\"\/><\/p>\n<div><figcaption>\u0420\u044f\u0434\u043e\u043c \u0441 \u0432\u0435\u0440\u0448\u0438\u043d\u043e\u0439 \u0441\u043f\u0440\u0430\u0432\u0430 \u0443\u043a\u0430\u0437\u0430\u043d \u0435\u0435 \u0438\u043d\u0434\u0435\u043a\u0441, \u0441\u043f\u0440\u0430\u0432\u0430 \u0432 \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u043e\u043c \u0441\u0442\u043e\u043b\u0431\u0446\u0435 \u0443\u043a\u0430\u0437\u0430\u043d\u043e \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432 \u043d\u0430 \u0443\u0440\u043e\u0432\u043d\u0435 <\/figcaption><\/div>\n<\/figure>\n<p>\u041a\u0430\u043a \u044f \u0438 \u043f\u0438\u0441\u0430\u043b \u0432\u044b\u0448\u0435 &#171;\u043a\u0430\u0436\u0434\u044b\u0439 \u0443\u0437\u0435\u043b, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043d\u0435 \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043b\u0438\u0441\u0442\u043e\u043c &#8212; \u044d\u0442\u043e \u0441\u0443\u043c\u043c\u0430 \u0434\u0432\u0443\u0445 \u0435\u0433\u043e \u043f\u043e\u0442\u043e\u043c\u043a\u043e\u0432&#187;, \u043d\u043e <strong>\u0447\u0442\u043e \u0435\u0449\u0435 \u043e\u0437\u043d\u0430\u0447\u0430\u0435\u0442 \u043a\u0430\u0436\u0434\u044b\u0439 \u0443\u0437\u0435\u043b?<\/strong><br \/> \u041e\u043d \u043e\u0437\u043d\u0430\u0447\u0430\u0435\u0442 \u0441\u0443\u043c\u043c\u0443 \u043d\u0430 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043d\u043e\u043c \u043e\u0442\u0440\u0435\u0437\u043a\u0435. \u0414\u043e\u043f\u0443\u0441\u0442\u0438\u043c \u0432\u043e\u0437\u044c\u043c\u0435\u043c \u0438\u043d\u0434\u0435\u043a\u0441 <code>10<\/code>. \u042d\u0442\u0430 \u0432\u0435\u0440\u0448\u0438\u043d\u0430 \u0431\u0443\u0434\u0435\u0442 \u043e\u0431\u043e\u0437\u043d\u0430\u0447\u0430\u0442\u044c \u0441\u0443\u043c\u043c\u0443 \u043d\u0430 \u043e\u0442\u0440\u0435\u0437\u043a\u0435 <code>[3, 3]<\/code>, \u0433\u0434\u0435 <code>3<\/code> &#8212; \u044d\u0442\u043e \u0438\u043d\u0434\u0435\u043a\u0441 \u0438\u0437 \u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u043c\u0430\u0441\u0441\u0438\u0432\u0430.<br \/> \u0414\u0440\u0443\u0433\u043e\u0439 \u043f\u0440\u0438\u043c\u0435\u0440: \u0438\u043d\u0434\u0435\u043a\u0441 <code>1<\/code>. \u041e\u043d \u043e\u0437\u043d\u0430\u0447\u0430\u0435\u0442 \u0441\u0443\u043c\u043c\u0443 \u043d\u0430 \u043e\u0442\u0440\u0435\u0437\u043a\u0435 <code>[0, 3]<\/code>. \u0418 \u0442\u0430\u043a \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u0441 \u043b\u044e\u0431\u044b\u043c \u0443\u0437\u043b\u043e\u043c \u0432 \u0434\u0435\u0440\u0435\u0432\u0435.<\/p>\n<figure class=\"\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w780q1\/getpro\/habr\/post_images\/86a\/102\/caf\/86a102cafb4dfefc36c78f7b8ac0d86f.jpg\" alt=\"\u0414\u043e\u0431\u0430\u0432\u0438\u043b \u043a\u0440\u0430\u0441\u043d\u044b\u0435 \u0438\u043d\u0434\u0435\u043a\u0441\u044b \u0438\u0437 \u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u043c\u0430\u0441\u0441\u0438\u0432\u0430, \u0430 \u0442\u0430\u043a\u0436\u0435 \u0443\u043a\u0430\u0437\u0430\u043b \u043f\u043e \u043f\u0440\u0438\u043c\u0435\u0440\u0443 \u0441\u0432\u044b\u0448\u0435, \u0447\u0442\u043e \u043e\u0431\u043e\u0437\u043d\u0430\u0447\u0430\u0435\u0442 \u043a\u0430\u0436\u0434\u044b\u0439 \u0438\u043d\u0434\u0435\u043a\u0441\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/post_images\/86a\/102\/caf\/86a102cafb4dfefc36c78f7b8ac0d86f.jpg\" data-blurred=\"true\"\/><\/p>\n<div><figcaption>\u0414\u043e\u0431\u0430\u0432\u0438\u043b \u043a\u0440\u0430\u0441\u043d\u044b\u0435 \u0438\u043d\u0434\u0435\u043a\u0441\u044b \u0438\u0437 \u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u043c\u0430\u0441\u0441\u0438\u0432\u0430, \u0430 \u0442\u0430\u043a\u0436\u0435 \u0443\u043a\u0430\u0437\u0430\u043b \u043f\u043e \u043f\u0440\u0438\u043c\u0435\u0440\u0443 \u0441\u0432\u044b\u0448\u0435, \u0447\u0442\u043e \u043e\u0431\u043e\u0437\u043d\u0430\u0447\u0430\u0435\u0442 \u043a\u0430\u0436\u0434\u044b\u0439 \u0438\u043d\u0434\u0435\u043a\u0441<\/figcaption><\/div>\n<\/figure>\n<p><strong>\u041a\u0430\u043a \u0436\u0435 \u043f\u043e\u0441\u0442\u0440\u043e\u0438\u0442\u044c \u0442\u0430\u043a\u043e\u0435 \u0434\u0435\u0440\u0435\u0432\u043e?<\/strong><br \/> \u0411\u0443\u0434\u0435\u043c \u0434\u0435\u043b\u0430\u0442\u044c \u044d\u0442\u043e \u0440\u0435\u043a\u0443\u0440\u0441\u0438\u0432\u043d\u043e, \u043d\u0430\u0447\u0438\u043d\u0430\u044f \u0441 \u0432\u0435\u0440\u0448\u0438\u043d\u044b. \u0410\u043b\u0433\u043e\u0440\u0438\u0442\u043c \u0431\u0443\u0434\u0435\u0442 \u0432\u044b\u0433\u043b\u044f\u0434\u0435\u0442\u044c \u0442\u0430\u043a:<\/p>\n<ul>\n<li>\n<p>\u041f\u0440\u0438\u043d\u0438\u043c\u0430\u0435\u043c \u043c\u0430\u0441\u0441\u0438\u0432, \u043d\u0430 \u043e\u0441\u043d\u043e\u0432\u0435 \u043a\u043e\u0442\u043e\u0440\u043e\u0433\u043e \u0441\u0442\u0440\u043e\u0438\u043c \u0434\u0435\u0440\u0435\u0432\u043e, \u0442\u0435\u043a\u0443\u0449\u0443\u044e \u0432\u0435\u0440\u0448\u0438\u043d\u0443 (\u0438\u043d\u0434\u0435\u043a\u0441 \u0432\u0435\u0440\u0448\u0438\u043d\u044b) \u0438 \u043b\u0435\u0432\u0443\u044e \u0438 \u043f\u0440\u0430\u0432\u0443\u044e \u0433\u0440\u0430\u043d\u0438\u0446\u0443<\/p>\n<\/li>\n<li>\n<p>\u0415\u0441\u043b\u0438 \u043b\u0435\u0432\u0430\u044f \u0438 \u043f\u0440\u0430\u0432\u0430\u044f \u0433\u0440\u0430\u043d\u0438\u0446\u0430 \u0441\u0436\u0430\u043b\u0438\u0441\u044c \u0434\u043e \u043e\u0434\u043d\u043e\u0433\u043e \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u0430, \u0442\u043e \u0443\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0435\u043c \u044d\u0442\u043e\u0442 \u044d\u043b\u0435\u043c\u0435\u043d\u0442<\/p>\n<\/li>\n<li>\n<p>\u0418\u043d\u0430\u0447\u0435, \u043d\u0430\u0445\u043e\u0434\u0438\u043c \u0441\u0435\u0440\u0435\u0434\u0438\u043d\u0443 \u0438 \u0440\u0435\u043a\u0443\u0440\u0441\u0438\u0432\u043d\u043e \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0435\u043c \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c \u0437\u0430\u043d\u043e\u0432\u043e <\/p>\n<ul>\n<li>\n<p>\u041f\u0435\u0440\u0432\u044b\u0439 \u0437\u0430\u043f\u0443\u0441\u043a &#8212; \u043b\u0435\u0432\u044b\u0435 \u0434\u0435\u0442\u0438<\/p>\n<\/li>\n<li>\n<p>\u0412\u0442\u043e\u0440\u043e\u0439 \u0437\u0430\u043f\u0443\u0441\u043a &#8212; \u043f\u0440\u0430\u0432\u044b\u0435 \u0434\u0435\u0442\u0438<\/p>\n<\/li>\n<\/ul>\n<\/li>\n<li>\n<p>\u041e\u0431\u043d\u043e\u0432\u043b\u044f\u0435\u043c \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0432 \u0442\u0435\u043a\u0443\u0449\u0435\u0439 \u0432\u0435\u0440\u0448\u0438\u043d\u0435<\/p>\n<\/li>\n<\/ul>\n<p><strong>\u041a\u043e\u0434 \u0432\u044b\u0433\u043b\u044f\u0434\u0438\u0442 \u0442\u0430\u043a:<\/strong><\/p>\n<pre><code class=\"cpp\">class segtree { public: vector&lt;int> t; int n;  segtree(vector&lt;int> &amp;arr) {   n = (int) arr.size();   t.resize(2 * n);   build(arr, 0, 0, n);   }  private:   void build(vector&lt;int> &amp;arr, int v, int tl, int tr) {       if (tl == tr - 1) {       t[v] = arr[tl];       } else {       int tm = (tl + tr) \/ 2;       build(arr, v * 2 + 1, tl, tm);       build(arr, v * 2 + 2, tm, tr);       t[v] = t[v * 2 + 1] + t[v * 2 + 2];       }     } } <\/code><\/pre>\n<p><strong>\u0420\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0438\u043c \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c \u043f\u043e \u0448\u0430\u0433\u0430\u043c:<\/strong><br \/> \u041f\u0443\u0441\u0442\u044c <code>n = 8<\/code>, \u0442\u043e\u0433\u0434\u0430 \u043c\u044b \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u043c \u0444\u0443\u043d\u043a\u0446\u0438\u044e <code>build<\/code> \u0441 <code>v = 0, tl = 0, tr = n<\/code><br \/> \u0420\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0438\u043c \u0441\u0430\u043c\u044b\u0439 \u043b\u0435\u0432\u044b\u0439 \u043f\u0443\u0442\u044c. \u041c\u044b \u0431\u0443\u0434\u0435\u043c \u0441\u0436\u0438\u043c\u0430\u0442\u044c \u043d\u0430\u0448 \u0442\u0435\u043a\u0443\u0449\u0438\u0439 \u043e\u0442\u0440\u0435\u0437\u043e\u043a (\u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0438\u0437\u043d\u0430\u0447\u0430\u043b\u044c\u043d\u043e \u0431\u044b\u043b <code>[0, n - 1]<\/code>, <code>n - 1<\/code> \u043f\u043e\u0442\u043e\u043c\u0443 \u0447\u0442\u043e \u043c\u044b \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u043c \u0441 <code>r - 1<\/code>) \u0434\u043e \u0442\u0430\u043a\u043e\u0433\u043e \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u044f, \u0447\u0442\u043e <code>tl == tr - 1<\/code>. \u0412 \u0441\u043b\u0443\u0447\u0430\u0435 \u0441 \u0441\u0430\u043c\u044b\u043c \u043b\u0435\u0432\u044b\u043c \u043f\u0443\u0442\u0435\u043c \u043c\u044b \u0441\u043e\u0436\u043c\u0435\u043c \u0435\u0433\u043e \u0434\u043e <code>[0, 0]<\/code>, \u043f\u043e\u0441\u043b\u0435 \u0447\u0435\u0433\u043e \u043c\u044b \u043f\u0440\u043e\u0438\u0437\u0432\u0435\u0434\u0435\u043c \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0435 \u043c\u0430\u0441\u0441\u0438\u0432\u0430 <code>t[7] = arr[0]<\/code>. <code>7<\/code> \u043f\u043e\u0442\u043e\u043c\u0443 \u0447\u0442\u043e \u043c\u044b \u043f\u0440\u0438 \u043a\u0430\u0436\u0434\u043e\u043c \u0432\u044b\u0437\u043e\u0432\u0435 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u0431\u0443\u0434\u0435\u043c \u0443\u0445\u043e\u0434\u0438\u0442\u044c \u0432\u043b\u0435\u0432\u043e \u0438 \u043c\u0435\u043d\u044f\u0442\u044c <code>v<\/code> \u043d\u0430 <code>2*v - 1<\/code>. \u041f\u043e \u043a\u0430\u0440\u0442\u0438\u043d\u043a\u0435 \u0432\u044b\u0448\u0435 \u043c\u043e\u0436\u043d\u043e \u043e\u0442\u0441\u043b\u0435\u0434\u0438\u0442\u044c \u043a\u0430\u043a \u0431\u0443\u0434\u0435\u043c \u043c\u0435\u043d\u044f\u0442\u044c\u0441\u044f <code>v<\/code>. \u041f\u043e\u0441\u043b\u0435 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f \u043c\u0430\u0441\u0441\u0438\u0432\u0430 \u043c\u044b \u0432\u044b\u0439\u0434\u0435\u043c \u0438\u0437 \u044d\u0442\u043e\u0433\u043e \u0432\u044b\u0437\u043e\u0432\u0430 \u0438 \u043f\u043e\u0434\u043d\u0438\u043c\u0435\u043c\u0441\u044f \u043d\u0430 \u0443\u0440\u043e\u0432\u0435\u043d\u044c \u0432\u044b\u0448\u0435. \u0418 \u043f\u043e\u0439\u0434\u0435\u043c \u0432 \u043f\u0440\u0430\u0432\u0443\u044e \u0441\u0442\u043e\u0440\u043e\u043d\u0443. \u041f\u043e\u0441\u043b\u0435 \u0442\u043e\u0433\u043e \u043a\u0430\u043a \u043f\u0440\u0430\u0432\u0430\u044f \u0441\u0442\u043e\u0440\u043e\u043d\u0430 \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442\u0441\u044f \u0443 \u043d\u0430\u0441 \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u0441\u044f, \u0447\u0442\u043e <code>t[7] = arr[0]<\/code> \u0438 <code>t[8] = arr[1]<\/code>. \u0410 <code>t[3] = t[7] + t[8]<\/code>. \u0418 \u0442\u0430\u043a \u0431\u0443\u0434\u0435\u0442 \u043f\u0440\u043e\u0434\u043e\u043b\u0436\u0430\u0442\u044c\u0441\u044f, \u043f\u043e\u043a\u0430 \u043d\u0435 \u043c\u044b \u043d\u0435 \u0432\u044b\u0439\u0434\u0435\u043c \u0438\u0437 \u0432\u044b\u0437\u043e\u0432\u043e\u0432 \u0438 \u043d\u0435 \u0432\u0435\u0440\u043d\u0435\u043c\u0441\u044f \u043a \u043f\u0435\u0440\u0432\u043e\u043c\u0443 \u0432\u044b\u0437\u043e\u0432\u0443, \u0433\u0434\u0435 \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442\u0441\u044f <code>t[0]<\/code>. \u0412 \u0438\u0442\u043e\u0433\u0435 \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u0441\u044f \u043f\u043e\u0441\u0442\u0440\u043e\u0435\u043d\u043d\u043e\u0435 \u0434\u0435\u0440\u0435\u0432\u043e \u043e\u0442\u0440\u0435\u0437\u043a\u043e\u0432.<\/p>\n<p>\u0422\u0430\u043a\u0436\u0435 \u0441\u0442\u043e\u0438\u0442 \u043e\u0442\u043c\u0435\u0442\u0438\u0442\u044c, \u0447\u0442\u043e \u0434\u0435\u0440\u0435\u0432\u043e \u043c\u043e\u0436\u043d\u043e \u043f\u043e\u0441\u0442\u0440\u043e\u0438\u0442\u044c \u0438 \u043d\u0435 \u043f\u0440\u0438\u0431\u0435\u0433\u0430\u044f \u043a \u0440\u0435\u043a\u0443\u0440\u0441\u0438\u0438. \u0422\u0430\u043a\u0436\u0435 \u043c\u043e\u0436\u043d\u043e \u0441\u0442\u0440\u043e\u0438\u0442\u044c \u0434\u0435\u0440\u0435\u0432\u043e \u0441\u043d\u0438\u0437\u0443 \u0432\u0432\u0435\u0440\u0445, \u0430 \u043d\u0435 \u043a\u0430\u043a \u0432 \u043d\u0430\u0448\u0435\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u0441\u0432\u0435\u0440\u0445\u0443 \u0432\u043d\u0438\u0437. \u042d\u0442\u0438 \u043c\u0435\u0442\u043e\u0434\u044b \u0440\u0430\u0437\u0431\u0435\u0440\u0435\u043c \u043d\u0438\u0436\u0435.<\/p>\n<h3>\u0418\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0435 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u0430 \u0432 \u043c\u0430\u0441\u0441\u0438\u0432\u0435<\/h3>\n<p>\u041f\u043e\u0441\u043b\u0435 \u043f\u043e\u0441\u0442\u0440\u043e\u0439\u043a\u0438 \u0434\u0435\u0440\u0435\u0432\u0430 \u043c\u043e\u0436\u043d\u043e \u0443\u0436\u0435 \u043f\u0435\u0440\u0435\u0445\u043e\u0434\u0438\u0442\u044c \u043a \u0441\u0430\u043c\u0438\u043c \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u044f\u043c. \u041d\u0430\u0447\u043d\u0435\u043c \u0441 \u0431\u043e\u043b\u0435\u0435 \u043b\u0435\u0433\u043a\u043e\u0433\u043e &#8212; \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0435 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u0430 \u0432 \u043c\u0430\u0441\u0441\u0438\u0432\u0435. \u041d\u0430\u043f\u043e\u043c\u043d\u044e, \u043a\u0430\u043a \u0437\u0432\u0443\u0447\u0438\u0442 \u0441\u0430\u043c\u0430 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u044f:<\/p>\n<ul>\n<li>\n<p><code>set(i, v)<\/code> &#8212; \u043c\u0435\u043d\u044f\u0435\u0442 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0443 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u0430 <code>arr[i]<\/code> \u043d\u0430 <code>v<\/code><\/p>\n<\/li>\n<\/ul>\n<figure class=\"\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w780q1\/getpro\/habr\/post_images\/b89\/974\/22e\/b8997422ea3362cd101239d255f31cba.jpg\" alt=\"\u0412\u0441\u043f\u043e\u043c\u0438\u043d\u0430\u0435\u043c, \u043a\u0430\u043a \u0432\u044b\u0433\u043b\u044f\u0434\u0438\u0442 \u0434\u0435\u0440\u0435\u0432\u043e\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/post_images\/b89\/974\/22e\/b8997422ea3362cd101239d255f31cba.jpg\" data-blurred=\"true\"\/><\/p>\n<div><figcaption>\u0412\u0441\u043f\u043e\u043c\u0438\u043d\u0430\u0435\u043c, \u043a\u0430\u043a \u0432\u044b\u0433\u043b\u044f\u0434\u0438\u0442 \u0434\u0435\u0440\u0435\u0432\u043e<\/figcaption><\/div>\n<\/figure>\n<p>\u0420\u0430\u0437\u0431\u0435\u0440\u0435\u043c \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0435 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u0430 \u043d\u0430 \u043f\u0440\u0438\u043c\u0435\u0440\u0435: \u0434\u043e\u043f\u0443\u0441\u0442\u0438\u043c \u043d\u0430\u043c \u043d\u0430\u0434\u043e \u043f\u043e\u043c\u0435\u043d\u044f\u0442\u044c \u044d\u043b\u0435\u043c\u0435\u043d\u0442 \u0441 \u0438\u043d\u0434\u0435\u043a\u0441\u043e\u043c <code>4<\/code> \u043d\u0430 <code>1<\/code>. \u0412 \u0442\u0430\u043a\u043e\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u043a\u0440\u043e\u043c\u0435 \u0441\u0430\u043c\u043e\u0433\u043e \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u0430 \u043d\u0430\u043c \u043d\u0443\u0436\u043d\u043e \u043f\u0435\u0440\u0435\u0441\u0447\u0438\u0442\u0430\u0442\u044c \u0432\u0441\u0435 \u0432\u0435\u0440\u0448\u0438\u043d\u044b \u0434\u043e \u043a\u043e\u0440\u043d\u044f. \u0422\u0430\u043a \u043a\u0430\u043a \u0441\u0442\u0440\u043e\u0438\u043b\u0438 \u043c\u044b \u0434\u0435\u0440\u0435\u0432\u043e \u0441\u0432\u0435\u0440\u0445\u0443 \u0432\u043d\u0438\u0437, \u0442\u043e \u0438 \u0438\u0437\u043c\u0435\u043d\u044f\u0442\u044c \u0431\u0443\u0434\u0435\u043c \u0441\u0432\u0435\u0440\u0445\u0443 \u0432\u043d\u0438\u0437. \u041d\u0430\u0447\u0438\u043d\u0430\u0435\u043c \u0441 \u043a\u043e\u0440\u043d\u044f (\u0442\u0435\u043a\u0443\u0449\u0430\u044f \u0432\u0435\u0440\u0448\u0438\u043d\u0430 \u0441 \u0438\u043d\u0434\u0435\u043a\u0441\u043e\u043c <code>0<\/code>) \u0438 \u0433\u0440\u0430\u043d\u0438\u0446\u0430\u043c\u0438 <code>xl, xr<\/code> \u0440\u0430\u0432\u043d\u044b\u043c\u0438 <code>0, n<\/code> \u0441\u043e\u043e\u0442\u0432\u0435\u0441\u0442\u0432\u0435\u043d\u043d\u043e. \u041d\u0430\u0445\u043e\u0434\u0438\u043c \u0441\u0435\u0440\u0435\u0434\u0438\u043d\u0443 \u0433\u0440\u0430\u043d\u0438\u0446 \u0438 \u0441\u043c\u043e\u0442\u0440\u0438\u043c \u043a\u0430\u043a\u043e\u0439 \u0440\u0435\u0431\u0435\u043d\u043e\u043a \u043d\u0430\u043c \u043f\u043e\u0434\u0445\u043e\u0434\u0438\u0442. \u0417\u0430\u0445\u043e\u0434\u0438\u043c \u0432 \u043f\u043e\u0434\u0445\u043e\u0434\u044f\u0449\u0435\u0433\u043e \u043d\u0430\u043c \u0440\u0435\u0431\u0435\u043d\u043a\u0430. \u0422\u043e \u0435\u0441\u0442\u044c \u0432\u043d\u0430\u0447\u0430\u043b\u0435 \u0443 \u043d\u0430\u0441 \u0431\u0443\u0434\u0435\u0442 \u0441\u0435\u0440\u0435\u0434\u0438\u043d\u0430 \u0440\u0430\u0432\u043d\u0430 <code>4<\/code>. \u042d\u0442\u043e \u0437\u043d\u0430\u0447\u0438\u0442, \u0447\u0442\u043e \u0432\u0441\u0435 \u043b\u0435\u0432\u044b\u0435 \u0434\u0435\u0442\u0438 \u043b\u0435\u0436\u0430\u0442 \u043d\u0430 \u043e\u0442\u0440\u0435\u0437\u043a\u0435 <code>[0, 3]<\/code>, \u0430 \u043f\u0440\u0430\u0432\u044b\u0435 <code>[4, 7]<\/code>. \u041d\u0430\u043c \u043f\u043e\u0434\u0445\u043e\u0434\u0438\u0442 \u043f\u0440\u0430\u0432\u044b\u0439 \u0440\u0435\u0431\u0435\u043d\u043e\u043a, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u043c\u044b \u043f\u0435\u0440\u0435\u0445\u043e\u0434\u0438\u043c \u0432 \u043d\u0435\u0433\u043e. \u041f\u043e\u0432\u0442\u043e\u0440\u044f\u0435\u043c \u0432\u0441\u0435 \u0442\u043e \u0436\u0435 \u0441\u0430\u043c\u043e\u0435 \u0434\u043e \u0442\u0435\u0445 \u043f\u043e\u0440, \u043f\u043e\u043a\u0430 \u043d\u0435 \u0441\u043e\u0436\u043c\u0435\u043c \u0433\u0440\u0430\u043d\u0438\u0446\u044b \u0434\u043e \u043e\u0434\u043d\u043e\u0433\u043e \u0447\u0438\u0441\u043b\u0430. \u0412 \u043d\u0430\u0448\u0435\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u044d\u0442\u043e \u0431\u0443\u0434\u0435\u0442 <code>[4, 4]<\/code>. \u0422\u043e\u0433\u0434\u0430 \u043c\u044b \u043f\u043e\u043c\u0435\u043d\u044f\u0435\u043c \u044d\u043b\u0435\u043c\u0435\u043d\u0442 \u0432 \u043c\u0430\u0441\u0441\u0438\u0432\u0435 \u0438 \u043d\u0430\u0447\u043d\u0435\u043c \u0432\u044b\u0445\u043e\u0434\u0438\u0442\u044c \u0438\u0437 \u0440\u0435\u043a\u0443\u0440\u0441\u0438\u0438. \u041d\u0430 \u0432\u044b\u0445\u043e\u0434\u0435 \u043c\u044b \u043f\u0435\u0440\u0435\u0441\u0447\u0438\u0442\u044b\u0432\u0430\u0435\u043c \u0432\u0435\u0440\u0448\u0438\u043d\u0443 \u0432\u044b\u0448\u0435. \u0422\u043e \u0435\u0441\u0442\u044c \u043f\u0440\u043e\u0441\u0442\u043e \u0437\u0430\u043d\u043e\u0432\u043e \u0432\u044b\u0447\u0438\u0441\u043b\u044f\u0435\u043c \u0435\u0435.<\/p>\n<pre><code class=\"cpp\">void set(int i, int v, int x, int xl, int xr) {   if (xl == xr - 1) {   t[x] = v;   return;   }   int xm = (xl + xr) \/ 2;   if (i &lt; xm) {   set(i, v, 2 * x + 1, xl, xm);   } else {   set(i, v, 2 * x + 2, xm, xr);   }   t[x] = t[2 * x + 1] + t[2 * x + 2];   } <\/code><\/pre>\n<p><strong>\u0421\u043b\u043e\u0436\u043d\u043e\u0441\u0442\u044c<\/strong><br \/> \u0422\u0430\u043a\u043e\u0439 \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c \u0431\u0443\u0434\u0435\u0442 \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u0437\u0430 <code>O(logn)<\/code>, \u043f\u043e\u0442\u043e\u043c\u0443 \u0447\u0442\u043e \u0433\u043b\u0443\u0431\u0438\u043d\u0430 \u043d\u0430\u0448\u0435\u0433\u043e \u0434\u0435\u0440\u0435\u0432\u0430 \u043d\u0435 \u043f\u0440\u0435\u0432\u044b\u0448\u0430\u0435\u0442 <code>logn<\/code> \u0438 \u043d\u0430 \u043a\u0430\u0436\u0434\u043e\u0439 \u0438\u0442\u0435\u0440\u0430\u0446\u0438\u0438 \u043c\u044b \u0432\u044b\u0431\u0438\u0440\u0430\u0435\u043c \u0432 \u043b\u0435\u0432\u043e\u0433\u043e \u0438\u043b\u0438 \u043f\u0440\u0430\u0432\u043e\u0433\u043e \u0440\u0435\u0431\u0435\u043d\u043a\u0430 \u043c\u044b \u0431\u0443\u0434\u0435\u043c \u0437\u0430\u0445\u043e\u0434\u0438\u0442\u044c.<\/p>\n<h3>\u041f\u043e\u0438\u0441\u043a \u0441\u0443\u043c\u043c\u044b \u043d\u0430 \u043e\u0442\u0440\u0435\u0437\u043a\u0435<\/h3>\n<p>\u0417\u0430\u0434\u0430\u0447\u0430 \u0437\u0432\u0443\u0447\u0430\u043b\u0430 \u0442\u0430\u043a:<\/p>\n<ul>\n<li>\n<p><code>sum(l,r)<\/code> &#8212; \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u043d\u0430\u0439\u0442\u0438 \u0441\u0443\u043c\u043c\u0443 \u043e\u0442\u0440\u0435\u0437\u043a\u0430 \u043e\u0442 <code>l<\/code> \u0434\u043e <code>r - 1<\/code> \u0438 \u0432\u0435\u0440\u043d\u0443\u0442\u044c \u0435\u0435. \u0424\u043e\u0440\u043c\u0430\u043b\u044c\u043d\u043e: <code>sum(l,r) = a[l] + a[l + 1] + ... + a[r - 1]<\/code><\/p>\n<\/li>\n<\/ul>\n<figure class=\"\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w780q1\/getpro\/habr\/post_images\/a68\/96d\/6f9\/a6896d6f953b25327476f2417a944b2c.jpg\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/post_images\/a68\/96d\/6f9\/a6896d6f953b25327476f2417a944b2c.jpg\" data-blurred=\"true\"\/><\/figure>\n<p>\u0414\u043e\u043f\u0443\u0441\u0442\u0438\u043c \u043d\u0430\u043c \u043d\u0443\u0436\u043d\u043e \u0432\u044b\u0447\u0438\u0441\u043b\u0438\u0442\u044c \u0441\u0443\u043c\u043c\u0443 \u043d\u0430 \u043e\u0442\u0440\u0435\u0437\u043a\u0435 <code>[1, 5]<\/code>, \u0442\u043e\u0433\u0434\u0430 \u043c\u044b \u0440\u0430\u0437\u043e\u0431\u044c\u0435\u043c \u044d\u0442\u043e\u0442 \u043e\u0442\u0440\u0435\u0437\u043e\u043a \u043d\u0430 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u043c\u0430\u043b\u0435\u043d\u044c\u043a\u0438\u0445 \u043e\u0442\u0440\u0435\u0437\u043a\u043e\u0432 (\u043d\u0430 \u043a\u0430\u0440\u0442\u0438\u043d\u043a\u0435 \u044d\u0442\u043e \u0441\u0438\u043d\u0438\u0435 \u043e\u0442\u0440\u0435\u0437\u043a\u0438). \u0418\u0445 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u043c\u044b \u0443\u0436\u0435 \u0437\u043d\u0430\u0435\u043c, \u043c\u044b \u043f\u0440\u043e\u0441\u0442\u043e \u0441\u043b\u043e\u0436\u0438\u043c \u044d\u0442\u0438 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u0438 \u0432\u0435\u0440\u043d\u0435\u043c \u043e\u0442\u0432\u0435\u0442.<\/p>\n<p>\u041a\u0430\u043a \u044d\u0442\u043e \u0440\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u0442\u044c. \u0412\u0441\u0435, \u043a\u0430\u043a \u0432\u0441\u0435\u0433\u0434\u0430 \u043d\u0430\u0447\u0438\u043d\u0430\u0435\u0442\u0441\u044f \u0441 \u043a\u043e\u0440\u043d\u044f \u0438 \u0441 \u0433\u0440\u0430\u043d\u0438\u0446\u0430\u043c\u0438 <code>xl = 0, xr = n<\/code>. \u041d\u043e \u0442\u0443\u0442 \u0435\u0441\u0442\u044c \u043d\u044e\u0430\u043d\u0441. \u0412 \u043a\u0430\u043a\u043e\u0439-\u0442\u043e \u043c\u043e\u043c\u0435\u043d\u0442 \u0432 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u0442\u0440\u0438 \u0432\u0430\u0440\u0438\u0430\u043d\u0442\u0430 \u0433\u0440\u0430\u043d\u0438\u0446\u044b:<\/p>\n<ol>\n<li>\n<p>\u0413\u0440\u0430\u043d\u0438\u0446\u0430 \u0432\u044b\u0448\u043b\u0430 \u0437\u0430 \u043e\u0442\u0440\u0435\u0437\u043e\u043a<\/p>\n<\/li>\n<li>\n<p>\u0413\u0440\u0430\u043d\u0438\u0446\u0430 \u043f\u043e\u043b\u043d\u043e\u0441\u0442\u044c\u044e \u0432\u043d\u0443\u0442\u0440\u0438 \u043e\u0442\u0440\u0435\u0437\u043a\u0430<\/p>\n<\/li>\n<li>\n<p>\u0413\u0440\u0430\u043d\u0438\u0446\u0430 \u0447\u0430\u0441\u0442\u0438\u0447\u043d\u043e \u0432\u043d\u0443\u0442\u0440\u0438 \u043e\u0442\u0440\u0435\u0437\u043a\u0430<\/p>\n<\/li>\n<\/ol>\n<figure class=\"\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w780q1\/getpro\/habr\/post_images\/173\/c1e\/182\/173c1e182c85586178cbf4b3f829a1c6.jpg\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/post_images\/173\/c1e\/182\/173c1e182c85586178cbf4b3f829a1c6.jpg\" data-blurred=\"true\"\/><\/figure>\n<ol>\n<li>\n<p>\u0412 \u043f\u0435\u0440\u0432\u043e\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u043d\u0430\u043c \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0432\u044b\u0439\u0442\u0438 \u0438\u0437 \u0444\u0443\u043d\u043a\u0446\u0438\u0438, \u043f\u043e\u0442\u043e\u043c\u0443 \u0447\u0442\u043e \u0432\u043d\u0438\u0437 \u043d\u0435\u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e \u0441\u043f\u0443\u0441\u0442\u0438\u0442\u044c\u0441\u044f \u0442\u0430\u043a, \u0447\u0442\u043e\u0431\u044b \u0433\u0440\u0430\u043d\u0438\u0446\u044b \u0432\u043e\u0448\u043b\u0438 \u0432 \u043e\u0442\u0440\u0435\u0437\u043e\u043a<\/p>\n<\/li>\n<li>\n<p>\u0412\u043e \u0432\u0442\u043e\u0440\u043e\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u043c\u044b \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u043c \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0432\u0435\u0440\u0448\u0438\u043d\u044b<\/p>\n<\/li>\n<li>\n<p>\u0410 \u0432 \u0442\u0440\u0435\u0442\u044c\u0438\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u043c\u044b \u0434\u0435\u043b\u0438\u043c \u043d\u0430\u0448\u0438 \u0433\u0440\u0430\u043d\u0438\u0446\u044b \u043d\u0430 \u0434\u0432\u0435 \u0447\u0430\u0441\u0442\u0438 \u0438 \u043e\u0442\u043f\u0440\u0430\u0432\u043b\u044f\u0435\u043c\u0441\u044f \u0432 \u043b\u0435\u0432\u043e\u0433\u043e \u0438 \u043f\u0440\u0430\u0432\u043e\u0433\u043e \u0440\u0435\u0431\u0435\u043d\u043a\u0430. \u041f\u043e\u0441\u043b\u0435 \u0447\u0435\u0433\u043e \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u043c \u0438\u0442\u043e\u0433\u043e\u0432\u0443\u044e \u0441\u0443\u043c\u043c\u0443 \u044d\u0442\u0438\u0445 \u0434\u0432\u0443\u0445 \u0447\u0430\u0441\u0442\u0435\u0439.<\/p>\n<\/li>\n<\/ol>\n<pre><code class=\"cpp\">long long sum(int l, int r, int x, int xl, int xr) {   if (r &lt;= xl || l >= xr) {   return 0;   }   if (xl >= l &amp;&amp; xr &lt;= r) {   return t[x];   }   int xm = (xl + xr) \/ 2;   return sum(l, r, 2 * x + 1, xl, xm) + sum(l, r, 2 * x + 2, xm, xr);   } <\/code><\/pre>\n<p><strong>\u0421\u043b\u043e\u0436\u043d\u043e\u0441\u0442\u044c<\/strong><br \/> \u0421\u043b\u043e\u0436\u043d\u043e\u0441\u0442\u044c \u0431\u0443\u0434\u0435\u0442 <code>O(logn)<\/code>, \u043f\u043e\u0442\u043e\u043c\u0443 \u0447\u0442\u043e \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0442\u0440\u0435\u0442\u044c\u0438\u0445 \u0441\u043b\u0443\u0447\u0430\u0435\u0432 \u043d\u0435 \u043f\u0440\u0435\u0432\u044b\u0441\u0438\u0442 <code>2logn<\/code>, \u0430 \u0432 \u0446\u0435\u043b\u043e\u043c \u0432 \u0434\u0435\u0440\u0435\u0432\u0435 \u0440\u0435\u043a\u0443\u0440\u0441\u0438\u0438 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0432\u044b\u0437\u043e\u0432\u043e\u0432 \u043d\u0435 \u043f\u0440\u0435\u0432\u044b\u0441\u0438\u0442 <code>4logn - 1<\/code><\/p>\n<p>\u0412\u043e\u0442 \u0438 \u0432\u0441\u0435, \u0441\u0430\u043c\u043e\u0435 \u043e\u0431\u044b\u0447\u043d\u043e\u0435 \u0434\u0435\u0440\u0435\u0432\u043e \u043e\u0442\u0440\u0435\u0437\u043a\u043e\u0432 \u0433\u043e\u0442\u043e\u0432\u043e. \u041d\u043e \u043d\u0430 \u044d\u0442\u043e\u043c \u0437\u0430\u0434\u0430\u0447\u0438 \u043d\u0435 \u0437\u0430\u043a\u0430\u043d\u0447\u0438\u0432\u0430\u044e\u0442\u0441\u044f. \u041f\u0440\u043e\u0434\u043e\u043b\u0436\u0438\u043c \u0440\u0430\u0437\u0431\u0438\u0440\u0430\u0442\u044c \u0437\u0430\u0434\u0430\u0447\u0438 \u0438 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u0438 \u0434\u0435\u0440\u0435\u0432\u0430 \u043e\u0442\u0440\u0435\u0437\u043a\u043e\u0432.<\/p>\n<h2>\u0414\u0435\u0440\u0435\u0432\u043e \u043e\u0442\u0440\u0435\u0437\u043a\u043e\u0432 \u0431\u0435\u0437 \u0440\u0435\u043a\u0443\u0440\u0441\u0438\u0438<\/h2>\n<p><strong>\u041f\u043e\u0441\u0442\u0440\u043e\u0439\u043a\u0430<\/strong> \u0432\u044b\u0433\u043b\u044f\u0434\u0438\u0442 \u043f\u0440\u043e\u0441\u0442\u043e. \u0412\u043d\u0430\u0447\u0430\u043b\u0435 \u043c\u044b \u0437\u0430\u043d\u043e\u0441\u0438\u043c \u0432 \u043b\u0438\u0441\u0442\u044b \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u0438\u0437 \u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f. \u041f\u0435\u0440\u0432\u044b\u0439 \u044d\u043b\u0435\u043c\u0435\u043d\u0442 \u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u043c\u0430\u0441\u0441\u0438\u0432\u0430 \u0445\u0440\u0430\u043d\u0438\u0442\u0441\u044f \u0432 <code>n - 1<\/code> \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u0435 \u0432 \u0434\u0435\u0440\u0435\u0432\u0435. \u041f\u043e\u0442\u043e\u043c\u0443 \u0447\u0442\u043e \u0434\u043e \u044d\u0442\u043e\u0433\u043e \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u0430 \u0432 \u0434\u0435\u0440\u0435\u0432\u0435 \u0435\u0441\u0442\u044c <code>n - 1<\/code> \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432. \u041f\u043e\u0441\u043b\u0435 \u0447\u0435\u0433\u043e \u0432 \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u043e\u043c \u0446\u0438\u043a\u043b\u0435 \u043c\u044b \u043f\u0440\u043e\u0445\u043e\u0434\u0438\u043c\u0441\u044f \u043f\u043e \u0432\u0441\u0435\u043c \u0443\u0437\u043b\u0430\u043c, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043d\u0435 \u044f\u0432\u043b\u044f\u044e\u0442\u0441\u044f \u043b\u0438\u0441\u0442\u044c\u044f\u043c\u0438 \u0438 \u0432\u044b\u0447\u0438\u0441\u043b\u044f\u0435\u043c \u0434\u043b\u044f \u043d\u0438\u0445 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f. \u0413\u043b\u0430\u0432\u043d\u043e\u0435 \u043f\u0440\u043e\u0445\u043e\u0434\u0438\u0442\u0441\u044f \u0432\u043e \u0432\u0442\u043e\u0440\u043e\u043c \u0446\u0438\u043a\u043b\u0435 \u0441 \u043a\u043e\u043d\u0446\u0430, \u043f\u043e\u0442\u043e\u043c\u0443 \u0447\u0442\u043e \u0435\u0441\u043b\u0438 \u043c\u044b \u043d\u0430\u0447\u043d\u0435\u043c \u0441 \u043d\u0443\u043b\u044f, \u0442\u043e \u0443 \u043d\u0430\u0441 \u0431\u0443\u0434\u0435\u0442 <code>t[0] = t[1] + t[2]<\/code>, \u043d\u043e <code>t[1], t[2]<\/code> \u0435\u0449\u0435 \u043d\u0435 \u0432\u044b\u0447\u0438\u0441\u043b\u0435\u043d\u044b \u0438 \u0434\u0435\u0440\u0435\u0432\u043e \u043d\u0435 \u043f\u043e\u0441\u0442\u0440\u043e\u0438\u0442\u0441\u044f \u0434\u043b\u044f \u0441\u043b\u043e\u0435\u0432 \u043a\u0440\u043e\u043c\u0435 \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0435\u0433\u043e \u0438 \u043f\u0440\u0435\u0434\u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0435\u0433\u043e.<\/p>\n<pre><code class=\"cpp\">void build(vector&lt;int> &amp;arr) {   n = (int) arr.size();   t.resize(2 * n);   for (int i = 0; i &lt; n; i++) {   t[n + i - 1] = arr[i];   }   for (int i = n - 1; i > 0; i--) {   t[i] = t[2 * i + 1] + t[2 * i + 2];   }   } <\/code><\/pre>\n<p><strong>\u0418\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0435 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u0430<\/strong><br \/> \u0412\u043d\u0430\u0447\u0430\u043b\u0435 \u043c\u0435\u043d\u044f\u0435\u043c \u044d\u043b\u0435\u043c\u0435\u043d\u0442, \u0430 \u043f\u043e\u0442\u043e\u043c \u043f\u043e\u0434\u043d\u0438\u043c\u0430\u0435\u043c\u0441\u044f \u0432\u0432\u0435\u0440\u0445 \u0434\u043e \u043a\u043e\u0440\u043d\u044f \u0438 \u0438\u0441\u043f\u0440\u0430\u0432\u043b\u044f\u0435\u043c \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f.<\/p>\n<pre><code class=\"cpp\">void set(int i, int v) {   int x = n + i - 1;   t[x] = v;   while (x != 0) {   x = (x - 1) \/ 2;   t[x] = t[2 * x + 1] + t[2 * x + 2];   }   } <\/code><\/pre>\n<p><strong>\u041f\u043e\u0438\u0441\u043a \u0441\u0443\u043c\u043c\u044b \u043d\u0430 \u043e\u0442\u0440\u0435\u0437\u043a\u0435<\/strong><br \/> \u0417\u0434\u0435\u0441\u044c \u043f\u0440\u0438\u0434\u0435\u0442\u0441\u044f \u043d\u0435\u043c\u043d\u043e\u0433\u043e \u043f\u043e\u0432\u043e\u0437\u0438\u0442\u044c\u0441\u044f. \u0423 \u043d\u0430\u0441 \u0435\u0441\u0442\u044c \u043b\u0435\u0432\u0430\u044f \u0438 \u043f\u0440\u0430\u0432\u0430\u044f \u0433\u0440\u0430\u043d\u0438\u0446\u0430. \u041d\u0430\u043c \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u043d\u0430\u0443\u0447\u0438\u0442\u044c\u0441\u044f \u043f\u043e\u0434\u043d\u0438\u043c\u0430\u0442\u044c\u0441\u044f \u0432\u0432\u0435\u0440\u0445 \u0438 \u043f\u0435\u0440\u0435\u043d\u043e\u0441\u0438\u0442\u044c \u0433\u0440\u0430\u043d\u0438\u0446\u044b. \u0421\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u0435\u0442 4 \u0432\u0430\u0440\u0438\u0430\u043d\u0442\u0430:<\/p>\n<ul>\n<li>\n<p>\u041b\u0435\u0432\u0430\u044f \u0433\u0440\u0430\u043d\u0438\u0446\u0430 \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043b\u0435\u0432\u044b\u043c \u0440\u0435\u0431\u0435\u043d\u043a\u043e\u043c. \u0422\u043e\u0433\u0434\u0430 \u043c\u044b \u043f\u0440\u043e\u0441\u0442\u043e \u0441\u043c\u0435\u0449\u0430\u0435\u043c \u043b\u0435\u0432\u0443\u044e \u0433\u0440\u0430\u043d\u0438\u0446\u0443 \u0438 \u0434\u0435\u043b\u0430\u0435\u043c \u0435\u0435 \u0440\u0430\u0432\u043d\u043e\u0439 \u0440\u043e\u0434\u0438\u0442\u0435\u043b\u044f.<\/p>\n<\/li>\n<li>\n<p>\u041f\u0440\u0430\u0432\u0430\u044f \u0433\u0440\u0430\u043d\u0438\u0446\u0430 \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043f\u0440\u0430\u0432\u044b\u043c \u0440\u0435\u0431\u0435\u043d\u043a\u043e\u043c. \u0410\u043d\u0430\u043b\u043e\u0433\u0438\u0447\u043d\u0430\u044f \u0441\u0438\u0442\u0443\u0430\u0446\u0438\u044f<\/p>\n<\/li>\n<li>\n<p>\u041b\u0435\u0432\u0430\u044f \u0433\u0440\u0430\u043d\u0438\u0446\u0430 \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043f\u0440\u0430\u0432\u044b\u043c \u0440\u0435\u0431\u0435\u043d\u043a\u043e\u043c. \u0422\u043e\u0433\u0434\u0430 \u043c\u044b \u0437\u0430\u043d\u043e\u0441\u0438\u043c \u0432 \u043e\u0442\u0432\u0435\u0442 \u043b\u0435\u0432\u0443\u044e \u0433\u0440\u0430\u043d\u0438\u0446\u0443. \u0410 \u0442\u0430\u043a\u0436\u0435 \u043f\u0435\u0440\u0435\u043d\u043e\u0441\u0438\u043c \u0435\u0435, \u043d\u043e \u043d\u0435 \u043a \u0440\u043e\u0434\u0438\u0442\u0435\u043b\u044e, \u0430 \u043a \u0441\u043e\u0441\u0435\u0434\u043d\u0435\u043c\u0443 \u043a \u0440\u043e\u0434\u0438\u0442\u0435\u043b\u044e \u0443\u0437\u043b\u0443.<\/p>\n<\/li>\n<li>\n<p>\u041f\u0440\u0430\u0432\u0430\u044f \u0433\u0440\u0430\u043d\u0438\u0446\u0430 \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043b\u0435\u0432\u044b\u043c \u0440\u0435\u0431\u0435\u043d\u043a\u043e\u043c. \u0410\u043d\u0430\u043b\u043e\u0433\u0438\u0447\u043d\u0430\u044f \u0441\u0438\u0442\u0443\u0430\u0446\u0438\u044f<\/p>\n<\/li>\n<\/ul>\n<figure class=\"\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w780q1\/getpro\/habr\/post_images\/c90\/860\/5ad\/c908605ad6d4b367cc9137719bfb094e.jpg\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/post_images\/c90\/860\/5ad\/c908605ad6d4b367cc9137719bfb094e.jpg\" data-blurred=\"true\"\/><\/figure>\n<p>\u041a\u043e\u0433\u0434\u0430 \u0432 \u043f\u0435\u0440\u0432\u043e\u043c \u0438 \u0432\u0442\u043e\u0440\u043e\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u043c\u044b \u043f\u0435\u0440\u0435\u043d\u043e\u0441\u0438\u043c \u0433\u0440\u0430\u043d\u0438\u0446\u0443 \u0432\u0432\u0435\u0440\u0445, \u0442\u043e \u043c\u044b \u043d\u0438\u0447\u0435\u0433\u043e \u043d\u0435 \u043c\u0435\u043d\u044f\u0435\u043c. \u041b\u0435\u0432\u0430\u044f \u0433\u0440\u0430\u043d\u0438\u0446\u0430 \u0432\u0441\u0435\u0433\u043e \u043e\u0442\u0440\u0435\u0437\u043a\u0430 \u043d\u0438\u043a\u0430\u043a \u043d\u0435 \u043c\u0435\u043d\u044f\u0435\u0442\u0441\u044f. \u041c\u044b \u043f\u0440\u043e\u0441\u0442\u043e \u043f\u043e\u0434\u043d\u044f\u043b\u0438\u0441\u044c \u043d\u0430\u0432\u0435\u0440\u0445. \u0410 \u0432 \u0442\u0440\u0435\u0442\u044c\u0435\u043c \u0438 \u0447\u0435\u0442\u0432\u0435\u0440\u0442\u043e\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u0431\u0435\u0437\u0431\u043e\u043b\u0435\u0437\u043d\u0435\u043d\u043d\u043e \u043f\u043e\u0434\u043d\u044f\u0442\u044c\u0441\u044f \u043d\u0435\u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u043c\u044b \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u043c \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0433\u0440\u0430\u043d\u0438\u0446\u044b \u0432 \u043e\u0442\u0432\u0435\u0442 \u0438 \u043f\u043e\u0434\u043d\u0438\u043c\u0430\u0435\u043c\u0441\u044f \u0432\u043f\u0440\u0430\u0432\u043e \u0438\u043b\u0438 \u0432\u043b\u0435\u0432\u043e. \u041f\u0440\u0430\u0432\u044b\u0439 \u0438\u043b\u0438 \u043b\u0435\u0432\u044b\u0439 \u0440\u0435\u0431\u0435\u043d\u043e\u043a \u0442\u0435\u043a\u0443\u0449\u0435\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0435\u043c \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u0447\u0435\u0442\u043d\u043e\u0441\u0442\u0438.<\/p>\n<p>\u041a\u043e\u0434 \u043d\u0435 \u043e\u0447\u0435\u0432\u0438\u0434\u0435\u043d \u0438 \u043d\u0430\u043f\u0438\u0441\u0430\u043d \u043d\u0435 \u0442\u043e\u0447\u044c-\u0432-\u0442\u043e\u0447\u044c \u043a\u0430\u043a \u0431\u044b\u043b\u043e \u043e\u043f\u0438\u0441\u0430\u043d\u043e \u0432\u044b\u0448\u0435. \u042d\u0442\u043e \u0441\u0432\u044f\u0437\u0430\u043d\u043e \u0441 \u0442\u0435\u043c, \u0447\u0442\u043e \u0437\u0434\u0435\u0441\u044c \u043f\u043e\u043a\u0430\u0437\u0430\u043d \u0438\u0442\u043e\u0433\u043e\u0432\u044b\u0439 \u0432\u0430\u0440\u0438\u0430\u043d\u0442, \u0432\u043a\u043b\u044e\u0447\u0430\u044f \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043d\u044b\u0435 \u043c\u0430\u0442\u0435\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0435 \u0441\u043e\u043a\u0440\u0430\u0449\u0435\u043d\u0438\u044f<\/p>\n<pre><code class=\"cpp\">int sum(int l, int r) {   l = l + n - 1;   r = r + n - 2; int ans = 0;   while (l &lt;= r) {   if (l % 2 == 0) ans += t[l];   l = l \/ 2;   if (r % 2 == 1) ans += t[r];   r = r \/ 2 - 1;   }   return ans;   } <\/code><\/pre>\n<p>\u0422\u0430\u043a\u043e\u0439 \u043a\u043e\u0434 \u0431\u0443\u0434\u0435\u0442 \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u0437\u0430 <code>O(log(r - l))<\/code>, \u043f\u043e\u0442\u043e\u043c\u0443 \u0447\u0442\u043e \u043d\u0430 \u043a\u0430\u0436\u0434\u043e\u0439 \u0438\u0442\u0435\u0440\u0430\u0446\u0438\u0438 \u0446\u0438\u043a\u043b\u0430 \u043c\u044b \u0443\u043c\u0435\u043d\u044c\u0448\u0430\u0435\u043c \u0434\u043b\u0438\u043d\u0443 \u043e\u0442\u0440\u0435\u0437\u043a\u0430 \u0432 \u0434\u0432\u0430 \u0440\u0430\u0437\u0430. \u042d\u0442\u043e \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u0443\u0434\u043e\u0431\u043d\u043e, \u043a\u043e\u0433\u0434\u0430 \u043d\u0430\u043c \u043d\u0443\u0436\u043d\u043e \u0447\u0430\u0441\u0442\u043e \u0438\u0441\u043a\u0430\u0442\u044c \u0441\u0443\u043c\u043c\u0443 \u043d\u0430 \u043a\u043e\u0440\u043e\u0442\u043a\u0438\u0445 \u043e\u0442\u0440\u0435\u0437\u043a\u0430\u0445.<\/p>\n<h2>\u041f\u0435\u0440\u0441\u0438\u0441\u0442\u0435\u043d\u0442\u043d\u044b\u0435 \u0434\u0435\u0440\u0435\u0432\u044c\u044f \u043e\u0442\u0440\u0435\u0437\u043a\u043e\u0432<\/h2>\n<p>\u042d\u0442\u043e \u0434\u0435\u0440\u0435\u0432\u043e \u043e\u0442\u0440\u0435\u0437\u043a\u043e\u0432, \u043a\u043e\u0442\u043e\u0440\u043e\u0435 \u0445\u0440\u0430\u043d\u0438\u0442 \u0432\u0441\u0435 \u0432\u0435\u0440\u0441\u0438\u0438 \u0434\u0435\u0440\u0435\u0432\u0430 \u043e\u0442\u0440\u0435\u0437\u043a\u043e\u0432. \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u043a\u043e\u0433\u0434\u0430 \u043d\u0430\u043c \u043d\u0443\u0436\u043d\u043e \u0438\u0437\u043c\u0435\u043d\u0438\u0442\u044c \u043a\u0430\u043a\u043e\u0439-\u043d\u0438\u0431\u0443\u0434\u044c \u044d\u043b\u0435\u043c\u0435\u043d\u0442 \u043c\u044b \u0434\u0435\u043b\u0430\u0435\u043c \u0434\u0435\u043b\u0430\u0435\u043c \u043a\u043e\u043f\u0438\u044e \u0432\u0441\u0435\u0433\u043e \u043f\u0443\u0442\u0438 \u043e\u0442 \u043a\u043e\u0440\u043d\u044f \u0434\u043e \u044d\u0442\u043e\u0439 \u0441\u0430\u043c\u043e\u0439 \u0432\u0435\u0440\u0448\u0438\u043d\u044b \u0438 \u0438\u0437\u043c\u0435\u043d\u044f\u0435\u043c \u0435\u0435. \u0412 \u0438\u0442\u043e\u0433\u0435 \u0432 \u0434\u0435\u0440\u0435\u0432\u0435 \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u0442\u0441\u044f \u0434\u0432\u0430 \u043a\u043e\u0440\u043d\u044f: \u043f\u0435\u0440\u0432\u044b\u0439 &#8212; \u043d\u0435 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u043d\u044b\u0439 \u0438 \u0432\u0442\u043e\u0440\u043e\u0439 &#8212; \u0443\u0436\u0435 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u043d\u044b\u0439. \u041f\u043e\u0434\u0440\u043e\u0431\u043d\u0435\u0435 \u043f\u0440\u043e \u0442\u0430\u043a\u0438\u0435 \u0434\u0435\u0440\u0435\u0432\u044c\u044f \u043c\u043e\u0436\u043d\u043e \u043d\u0430 <a href=\"https:\/\/habr.com\/ru\/articles\/142572\/\" rel=\"noopener noreferrer nofollow\">\u0425\u0430\u0431\u0440\u0435<\/a><\/p>\n<h2>\u0422\u0440\u0435\u0442\u044c\u044f \u0437\u0430\u0434\u0430\u0447\u0430<\/h2>\n<p><strong>\u0423\u0441\u043b\u043e\u0432\u0438\u0435<\/strong> \u0438\u0437\u043c\u0435\u043d\u044f\u0435\u0442\u0441\u044f<br \/> \u0414\u0430\u043d \u043c\u0430\u0441\u0441\u0438\u0432 <em>arr<\/em> \u0446\u0435\u043b\u044b\u0445 \u0447\u0438\u0441\u0435\u043b \u0440\u0430\u0437\u043c\u0435\u0440\u043e\u043c <em>n<\/em>. \u041d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0432\u044b\u043f\u043e\u043b\u043d\u0438\u0442\u044c <em>m<\/em> \u0437\u0430\u043f\u0440\u043e\u0441\u043e\u0432. \u041a\u0430\u0436\u0434\u044b\u0439 \u0437\u0430\u043f\u0440\u043e\u0441 \u0432\u044b\u0433\u043b\u044f\u0434\u0438\u0442 \u0442\u0430\u043a:<\/p>\n<ul>\n<li>\n<p><code>min(l,r)<\/code> &#8212; \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u043d\u0430\u0439\u0442\u0438 \u043c\u0438\u043d\u0438\u043c\u0443\u043c \u043d\u0430 \u043e\u0442\u0440\u0435\u0437\u043a\u0435 \u043e\u0442 <code>l<\/code> \u0434\u043e <code>r - 1<\/code> \u0438 \u0432\u0435\u0440\u043d\u0443\u0442\u044c \u0435\u0435. \u0424\u043e\u0440\u043c\u0430\u043b\u044c\u043d\u043e: <code>min(l,r) = min(a[l], a[l + 1], ..., a[r - 1])<\/code><\/p>\n<\/li>\n<li>\n<p><code>set(i, v)<\/code> &#8212; \u043c\u0435\u043d\u044f\u0435\u0442 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0443 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u0430 <code>arr[i]<\/code> \u043d\u0430 <code>v<\/code><\/p>\n<\/li>\n<\/ul>\n<p>\u0414\u0435\u0440\u0435\u0432\u043e \u043e\u0442\u0440\u0435\u0437\u043a\u043e\u0432 \u043c\u043e\u0436\u043d\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0434\u043b\u044f \u043b\u044e\u0431\u043e\u0439 <a href=\"https:\/\/ru.wikipedia.org\/wiki\/%D0%90%D1%81%D1%81%D0%BE%D1%86%D0%B8%D0%B0%D1%82%D0%B8%D0%B2%D0%BD%D0%BE%D1%81%D1%82%D1%8C_(%D0%BC%D0%B0%D1%82%D0%B5%D0%BC%D0%B0%D1%82%D0%B8%D0%BA%D0%B0)\" rel=\"noopener noreferrer nofollow\">\u0430\u0441\u0441\u043e\u0446\u0438\u0430\u0442\u0438\u0432\u043d\u043e\u0439<\/a> \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0438, \u0442\u043e \u0435\u0441\u0442\u044c \u0434\u043b\u044f \u0442\u0430\u043a\u043e\u0439 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0438, \u0432 \u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u043f\u043e\u0440\u044f\u0434\u043e\u043a \u043d\u0435 \u0438\u043c\u0435\u0435\u0442 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435. \u041c\u0438\u043d\u0438\u043c\u0443\u043c \u0438 \u043c\u0430\u043a\u0441\u0438\u043c\u0443\u043c \u044f\u0432\u043b\u044f\u044e\u0442\u0441\u044f \u0438\u043c\u0435\u043d\u043d\u043e \u0442\u0430\u043a\u0438\u043c\u0438 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u044f, \u043f\u043e\u0442\u043e\u043c\u0443 \u0447\u0442\u043e \u0432\u0430\u0440\u0438\u0430\u043d\u0442\u044b <code>min(1, 2, 3) = 1<\/code> \u0438 <code>min(3, 2, 1) = 1<\/code> \u0432\u0435\u0440\u043d\u0443\u0442 \u043e\u0434\u043d\u043e \u0438 \u0442\u043e \u0436\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435.<\/p>\n<p>\u041f\u043e \u0441\u0443\u0442\u0438 \u043a\u043e\u0434 \u043d\u0435 \u043e\u0447\u0435\u043d\u044c \u0441\u0438\u043b\u044c\u043d\u043e \u043c\u0435\u043d\u044f\u0435\u0442\u0441\u044f. \u0415\u0441\u0442\u044c \u0432\u0441\u0435\u0433\u043e \u0434\u0432\u0430 \u0432\u0430\u0436\u043d\u044b\u0445 \u043c\u043e\u043c\u0435\u043d\u0442\u0430:<\/p>\n<ul>\n<li>\n<p>\u0418\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 \u043d\u0435\u0439\u0442\u0440\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435<\/p>\n<\/li>\n<li>\n<p>\u0410\u0441\u0441\u043e\u0446\u0438\u0430\u0442\u0438\u0432\u043d\u0430\u044f \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u044f<\/p>\n<\/li>\n<\/ul>\n<p>\u041a\u043e\u0433\u0434\u0430 \u043c\u044b \u0433\u043e\u0442\u043e\u0432\u0438\u043b\u0438 \u043c\u0430\u0441\u0441\u0438\u0432 \u0434\u043b\u044f \u043f\u043e\u0441\u0442\u0440\u043e\u0435\u043d\u0438\u044f \u0434\u0435\u0440\u0435\u0432\u0430 \u043c\u044b \u0437\u0430\u043f\u043e\u043b\u043d\u044f\u043b\u0438 \u0435\u0433\u043e \u043d\u0443\u043b\u044f\u043c\u0438, \u043d\u043e \u044d\u0442\u043e \u043d\u0435\u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u043e \u0432 \u0441\u043b\u0443\u0447\u0430\u0435 \u0441 \u043c\u0438\u043d\u0438\u043c\u0443\u043c\u043e\u043c. \u041f\u043e\u0442\u043e\u043c\u0443 \u0447\u0442\u043e \u043d\u0443\u043b\u0438 \u044d\u0442\u043e \u043e\u0447\u0435\u043d\u044c \u043c\u0430\u043b\u0435\u043d\u044c\u043a\u0438\u0435 \u0447\u0438\u0441\u043b\u0430 \u0438 \u043e\u043d\u0438 \u0432\u043b\u0438\u044f\u044e\u0442 \u043d\u0430 \u0438\u0442\u043e\u0433\u043e\u0432\u044b\u0439 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442. \u041f\u043e\u044d\u0442\u043e\u043c\u0443 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u043d\u0435\u0439\u0442\u0440\u0430\u043b\u044c\u043d\u043e\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435. \u0422\u043e \u0435\u0441\u0442\u044c \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435, \u043a\u043e\u0442\u043e\u0440\u043e\u0435 \u043d\u0435 \u0432\u043b\u0438\u044f\u0435\u0442 \u043d\u0430 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442. \u0414\u043b\u044f \u043c\u0438\u043d\u0438\u043c\u0443\u043c\u0430, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u043c\u043e\u0436\u043d\u043e \u0432\u0437\u044f\u0442\u044c \u044d\u0442\u043e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435, \u043a\u0430\u043a <code>INT_MAX<\/code>. \u0412 \u043a\u043e\u0434\u0435 \u044f \u0432\u044b\u043d\u0435\u0441 \u043d\u0435\u0439\u0442\u0440\u0430\u043b\u044c\u043d\u043e\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0432 \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u0443\u044e \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u0443\u044e.<\/p>\n<pre><code class=\"cpp\">int NEUTRAL = INT_MAX; void resize(vector&lt;int> &amp;arr) {   int s = (int) arr.size();   int new_s = (int) pow(2, ceil(log2(s)));   arr.resize(new_s, NEUTRAL);   } <\/code><\/pre>\n<p>\u0410 \u0447\u0442\u043e \u0436\u0435 \u0434\u0435\u043b\u0430\u0442\u044c \u0441 \u043f\u043b\u044e\u0441\u043e\u043c \u0432 \u0434\u0435\u0440\u0435\u0432\u0435 \u0441\u0435\u0433\u043c\u0435\u043d\u0442\u043e\u0432. \u0412\u0441\u0435 \u043f\u0440\u043e\u0441\u0442\u043e: \u043c\u044b \u043c\u043e\u0436\u0435\u043c \u043f\u043e\u043c\u0435\u043d\u044f\u0442\u044c \u043f\u043b\u044e\u0441 \u0432\u0435\u0437\u0434\u0435, \u0433\u0434\u0435 \u043e\u043d \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043b\u0441\u044f \u043d\u0430 \u043b\u044e\u0431\u0443\u044e \u0430\u0441\u0441\u043e\u0446\u0438\u0430\u0442\u0438\u0432\u043d\u0443\u044e \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u044e. \u042f \u043f\u043e\u043c\u0435\u043d\u044f\u043b \u043f\u043b\u044e\u0441 \u043d\u0430 \u0437\u043d\u0430\u043a <code>\u25fe<\/code>, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0431\u0443\u0434\u0435\u0442 \u043e\u0431\u043e\u0437\u043d\u0430\u0447\u0430\u0442\u044c \u043b\u044e\u0431\u0443\u044e \u0430\u0441\u0441\u043e\u0446\u0438\u0430\u0442\u0438\u0432\u043d\u0443\u044e \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u044e.<br \/> <strong>\u041f\u043e\u0441\u0442\u0440\u043e\u0435\u043d\u0438\u0435 \u0434\u0435\u0440\u0435\u0432\u0430<\/strong> \u0442\u0435\u043f\u0435\u0440\u044c \u0432\u044b\u0433\u043b\u044f\u0434\u0438\u0442 \u0442\u0430\u043a.<\/p>\n<pre><code class=\"cpp\">void build(vector&lt;int> &amp;arr, int v, int tl, int tr) {       if (tl == tr - 1) {       t[v] = arr[tl];       } else {       int tm = (tl + tr) \/ 2;       build(arr, v * 2 + 1, tl, tm);       build(arr, v * 2 + 2, tm, tr);       t[v] = t[v * 2 + 1] \u25fe t[v * 2 + 2];       }   } <\/code><\/pre>\n<p><strong>\u0418\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0435 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u0430<\/strong><\/p>\n<pre><code class=\"cpp\">void set(int i, int v, int x, int xl, int xr) {   if (xl == xr - 1) {   t[x] = v;   return;   }   int xm = (xl + xr) \/ 2;   if (i &lt; xm) {   set(i, v, 2 * x + 1, xl, xm);   } else {   set(i, v, 2 * x + 2, xm, xr);   }   t[x] = t[2 * x + 1] \u25fe t[2 * x + 2];   } <\/code><\/pre>\n<p>\u041f\u043e\u0438\u0441\u043a \u043d\u0430 \u043e\u0442\u0440\u0435\u0437\u043a\u0435<\/p>\n<pre><code class=\"cpp\">long long sum(int l, int r, int x, int xl, int xr) {   if (r &lt;= xl || l >= xr) {   return NEUTRAL; \/\/ \u043e\u0431\u0440\u0430\u0442\u0438\u0442\u0435 \u0432\u043d\u0438\u043c\u0430\u043d\u0438\u0435, \u0442\u0443\u0442 \u0442\u043e\u0436\u0435 \u043d\u0435\u0439\u0442\u0440\u0430\u043b\u044c\u043d\u043e\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 }   if (xl >= l &amp;&amp; xr &lt;= r) {   return t[x];   }   int xm = (xl + xr) \/ 2;   return sum(l, r, 2 * x + 1, xl, xm) \u25fe sum(l, r, 2 * x + 2, xm, xr);   } <\/code><\/pre>\n<h2>\u0427\u0435\u0442\u0432\u0435\u0440\u0442\u0430\u044f \u0437\u0430\u0434\u0430\u0447\u0430<\/h2>\n<p><strong>\u041e\u0440\u0438\u0433\u0438\u043d\u0430\u043b\u044c\u043d\u043e\u0435 \u0443\u0441\u043b\u043e\u0432\u0438\u0435 \u0437\u0430\u0434\u0430\u0447\u0438<\/strong><br \/> \u0422\u0435\u043f\u0435\u0440\u044c \u0438\u0437\u043c\u0435\u043d\u0438\u0442\u0435 \u043a\u043e\u0434 \u0434\u0435\u0440\u0435\u0432\u0430 \u043e\u0442\u0440\u0435\u0437\u043a\u043e\u0432, \u0447\u0442\u043e\u0431\u044b \u043a\u0440\u043e\u043c\u0435 \u043c\u0438\u043d\u0438\u043c\u0443\u043c\u0430 \u043d\u0430 \u043e\u0442\u0440\u0435\u0437\u043a\u0435 \u0441\u0447\u0438\u0442\u0430\u043b\u043e\u0441\u044c \u0442\u0430\u043a\u0436\u0435 \u0438 \u0447\u0438\u0441\u043b\u043e \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432, \u0440\u0430\u0432\u043d\u044b\u0445 \u043c\u0438\u043d\u0438\u043c\u0443\u043c\u0443<\/p>\n<p><strong>\u0422\u043e \u0435\u0441\u0442\u044c<\/strong><br \/> \u0414\u0430\u043d \u043c\u0430\u0441\u0441\u0438\u0432 <em>arr<\/em> \u0446\u0435\u043b\u044b\u0445 \u0447\u0438\u0441\u0435\u043b \u0440\u0430\u0437\u043c\u0435\u0440\u043e\u043c <em>n<\/em>. \u041d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0432\u044b\u043f\u043e\u043b\u043d\u0438\u0442\u044c <em>m<\/em> \u0437\u0430\u043f\u0440\u043e\u0441\u043e\u0432. \u041a\u0430\u0436\u0434\u044b\u0439 \u0437\u0430\u043f\u0440\u043e\u0441 \u0432\u044b\u0433\u043b\u044f\u0434\u0438\u0442 \u0442\u0430\u043a:<\/p>\n<ul>\n<li>\n<p><code>mmin(l,r)<\/code> &#8212; \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u043d\u0430\u0439\u0442\u0438 \u043c\u0438\u043d\u0438\u043c\u0443\u043c , \u0430 \u0442\u0430\u043a\u0436\u0435 \u0447\u0438\u0441\u043b\u043e \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432, \u0440\u0430\u0432\u043d\u044b\u0445 \u043c\u0438\u043d\u0438\u043c\u0443\u043c\u0443 \u043d\u0430 \u043e\u0442\u0440\u0435\u0437\u043a\u0435 \u043e\u0442 <code>l<\/code> \u0434\u043e <code>r - 1<\/code><\/p>\n<\/li>\n<li>\n<p><code>set(i, v)<\/code> &#8212; \u043c\u0435\u043d\u044f\u0435\u0442 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0443 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u0430 <code>arr[i]<\/code> \u043d\u0430 <code>v<\/code><\/p>\n<\/li>\n<\/ul>\n<p>\u0414\u043b\u044f \u0440\u0435\u0448\u0435\u043d\u0438\u044f \u0442\u0430\u043a\u043e\u0439 \u0437\u0430\u0434\u0430\u0447\u0438 \u0431\u0443\u0434\u0435\u043c \u0445\u0440\u0430\u043d\u0438\u0442\u044c \u043f\u0430\u0440\u0443 \u0447\u0438\u0441\u0435\u043b \u0432 \u0434\u0435\u0440\u0435\u0432\u0435 \u043e\u0442\u0440\u0435\u0437\u043a\u043e\u0432. \u041f\u0435\u0440\u0432\u043e\u0435 \u0447\u0438\u0441\u043b\u043e &#8212; \u044d\u0442\u043e \u0441\u0430\u043c\u043e \u043c\u0438\u043d\u0438\u043c\u0430\u043b\u044c\u043d\u043e\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435. \u0410 \u0432\u0442\u043e\u0440\u043e\u0435 \u044d\u0442\u043e \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432 \u043d\u0430 \u043e\u0442\u0440\u0435\u0437\u043a\u0435, \u0440\u0430\u0432\u043d\u044b\u0445 \u043c\u0438\u043d\u0438\u043c\u0430\u043b\u044c\u043d\u043e\u043c\u0443.<\/p>\n<figure class=\"\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w780q1\/getpro\/habr\/post_images\/f06\/774\/aaa\/f06774aaa770c2e2598da82b22ee2d95.jpg\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/post_images\/f06\/774\/aaa\/f06774aaa770c2e2598da82b22ee2d95.jpg\" data-blurred=\"true\"\/><\/figure>\n<p>\u0422\u043e\u0433\u0434\u0430 \u043d\u0430\u043c \u043d\u0443\u0436\u043d\u043e \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0438\u0442\u044c \u043d\u0430\u0448\u0443 \u0430\u0441\u0441\u043e\u0446\u0438\u0430\u0442\u0438\u0432\u043d\u0443\u044e \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u044e. \u041e\u043d\u0430 \u0431\u0443\u0434\u0435\u0442 \u043f\u0440\u0438\u043d\u0438\u043c\u0430\u0442\u044c \u0434\u0432\u0435 \u043f\u0430\u0440\u044b. \u041f\u0440\u043e\u0432\u0435\u0440\u044f\u0435\u043c, \u0435\u0441\u043b\u0438 \u043c\u0438\u043d\u0438\u043c\u0430\u043b\u044c\u043d\u044b\u0439 \u044d\u043b\u0435\u043c\u0435\u043d\u0442 \u043f\u0435\u0440\u0432\u043e\u0439 \u043f\u0430\u0440\u044b \u043c\u0435\u043d\u044c\u0448\u0435 \u043c\u0438\u043d. \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u0430 \u0432\u0442\u043e\u0440\u043e\u0439 \u043f\u0430\u0440\u044b, \u0442\u043e \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u043c \u043f\u0435\u0440\u0432\u0443\u044e \u043f\u0430\u0440\u0443. \u0415\u0441\u043b\u0438 \u043d\u0430\u043e\u0431\u043e\u0440\u043e\u0442, \u0442\u043e \u0432\u0442\u043e\u0440\u0443\u044e \u043f\u0430\u0440\u0443. \u0415\u0441\u043b\u0438 \u043e\u043d\u0438 \u0440\u0430\u0432\u043d\u044b, \u0442\u043e \u043d\u0430\u043c \u043d\u0443\u0436\u043d\u043e \u0432\u0435\u0440\u043d\u0443\u0442\u044c \u043d\u043e\u0432\u0443\u044e \u043f\u0430\u0440\u0443 \u0438 \u0441\u043b\u043e\u0436\u0438\u0442\u044c \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u043c\u0435\u0436\u0434\u0443 \u0441\u043e\u0431\u043e\u0439.<\/p>\n<pre><code class=\"cpp\">typedef pair&lt;long long, int> Type; Type combine(Type a, Type b) {   if (a.first &lt; b.first) return a;   if (b.first &lt; a.first) return b;   return {a.first, a.second + b.second};   } <\/code><\/pre>\n<p>\u0422\u0435\u043f\u0435\u0440\u044c \u043c\u044b \u043c\u043e\u0436\u0435\u043c \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u044d\u0442\u0443 \u0430\u0441\u0441\u043e\u0446\u0438\u0430\u0442\u0438\u0432\u043d\u0443\u044e \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u044e \u0432\u043c\u0435\u0441\u0442\u043e <code>\u25fe<\/code> \u0438\u0437 \u0442\u0440\u0435\u0442\u044c\u0435\u0439 \u0437\u0430\u0434\u0430\u0447\u0438. \u0422\u0430\u043a\u0436\u0435 \u043d\u0435 \u0441\u0442\u043e\u0438\u0442 \u0437\u0430\u0431\u044b\u0432\u0430\u0442\u044c \u043f\u0440\u043e <code>NEUTRAL<\/code>, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0432 \u0434\u0430\u043d\u043d\u043e\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u043c\u043e\u0436\u043d\u043e \u0432\u0437\u044f\u0442\u044c \u043a\u0430\u043a <code>LLONG_MAX<\/code>, \u0430 \u0432\u0442\u043e\u0440\u043e\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0432 \u043f\u0430\u0440\u0435 (<code>NEUTRAL<\/code> \u0431\u0443\u0434\u0435\u0442 \u043f\u0430\u0440\u043e\u0439) \u0431\u0443\u0434\u0435\u0442 0, \u0442\u0430\u043a \u043a\u0430\u043a \u0434\u043b\u044f \u0441\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u043e\u043d\u043e \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043d\u0435\u0439\u0442\u0440\u0430\u043b\u044c\u043d\u044b\u043c \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435\u043c.<\/p>\n<p>\u041f\u043e\u043b\u043d\u043e\u0435 \u0440\u0435\u0448\u0435\u043d\u0438\u0435 \u043c\u043e\u0436\u043d\u043e \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c \u043d\u0430 <a href=\"https:\/\/github.com\/lld4n\/leetcode\/blob\/master\/%D0%B4%D1%80%D1%83%D0%B3%D0%BE%D0%B5\/%D1%82%D0%B8%D0%BD%D1%8C%D0%BA%D0%BE%D1%84%D1%84.%D0%B0%D0%B8%D1%81%D0%B4\/8\/B.cpp\" rel=\"noopener noreferrer nofollow\">GitHub<\/a><\/p>\n<h2>\u041f\u044f\u0442\u0430\u044f \u0437\u0430\u0434\u0430\u0447\u0430<\/h2>\n<p><strong>\u041e\u0440\u0438\u0433\u0438\u043d\u0430\u043b\u044c\u043d\u043e\u0435 \u0443\u0441\u043b\u043e\u0432\u0438\u0435 \u0437\u0430\u0434\u0430\u0447\u0438<\/strong><br \/> \u0412 \u044d\u0442\u043e\u0439 \u0437\u0430\u0434\u0430\u0447\u0435 \u0432\u0430\u043c \u043d\u0443\u0436\u043d\u043e \u0434\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u0432 \u0434\u0435\u0440\u0435\u0432\u043e \u043e\u0442\u0440\u0435\u0437\u043a\u043e\u0432 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u044e \u043d\u0430\u0445\u043e\u0436\u0434\u0435\u043d\u0438\u044f k-\u0439 \u0435\u0434\u0438\u043d\u0438\u0446\u044b<\/p>\n<p>\u041e\u0441\u043e\u0431\u0435\u043d\u043d\u043e\u0441\u0442\u044c \u0442\u0430\u043a\u043e\u0439 \u0437\u0430\u0434\u0430\u0447\u0438 \u0432 \u0442\u043e\u043c, \u0447\u0442\u043e \u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b\u044c\u043d\u044b\u0439 \u043c\u0430\u0441\u0441\u0438\u0432 \u0441\u043e\u0441\u0442\u043e\u0438\u0442 \u0442\u043e\u043b\u044c\u043a\u043e \u0438\u0437 <code>1<\/code> \u0438\u043b\u0438 <code>0<\/code>. \u0410 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u044f \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f \u043f\u0440\u0438\u043d\u0438\u043c\u0430\u0435\u0442 \u0442\u043e\u043b\u044c\u043a\u043e \u0438\u043d\u0434\u0435\u043a\u0441 \u0438 \u043c\u0435\u043d\u044f\u0435\u0442 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u043d\u0430 \u043f\u0440\u043e\u0442\u0438\u0432\u043e\u043f\u043e\u043b\u043e\u0436\u043d\u043e\u0435. \u0422\u043e \u0435\u0441\u0442\u044c <code>set(i)<\/code> -> <code>arr[i] = arr[i] == 1 ? 0 : 1<\/code>.<\/p>\n<p>\u0414\u043b\u044f \u0440\u0435\u0448\u0435\u043d\u0438\u044f \u0442\u0430\u043a\u043e\u0439 \u0437\u0430\u0434\u0430\u0447\u0438 \u0431\u0443\u0434\u0435\u043c \u0445\u0440\u0430\u043d\u0438\u0442\u044c \u0432 \u0443\u0437\u043b\u0430\u0445 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0435\u0434\u0438\u043d\u0438\u0446 \u0432 \u043e\u0442\u0440\u0435\u0437\u043a\u0435. \u0422\u043e\u0433\u0434\u0430 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u044f \u043f\u043e\u0441\u0442\u0440\u043e\u0435\u043d\u0438\u044f \u0434\u0435\u0440\u0435\u0432\u0430, \u0430 \u0442\u0430\u043a\u0436\u0435 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f \u0431\u0443\u0434\u0443\u0442 \u0442\u0430\u043a\u0438\u043c\u0438 \u0436\u0435 \u043a\u0430\u043a \u0432 \u043e\u0431\u044b\u0447\u043d\u043e\u043c \u0434\u0435\u0440\u0435\u0432\u0435 \u043e\u0442\u0440\u0435\u0437\u043a\u043e\u0432. \u0410\u0441\u0441\u043e\u0446\u0438\u0430\u0442\u0438\u0432\u043d\u043e\u0439 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0435\u0439 \u0431\u0443\u0434\u0435\u0442 \u0441\u0443\u043c\u043c\u0430.<\/p>\n<figure class=\"\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w780q1\/getpro\/habr\/post_images\/710\/049\/48c\/71004948c8549769331f40cdb6740975.jpg\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/post_images\/710\/049\/48c\/71004948c8549769331f40cdb6740975.jpg\" data-blurred=\"true\"\/><\/figure>\n<p>\u0410 \u0432\u043e\u0442 \u043f\u043e\u0438\u0441\u043a k-\u043e\u0439 \u0435\u0434\u0438\u043d\u0438\u0446\u044b \u0431\u0443\u0434\u0435\u0442 \u0442\u0430\u043a\u043e\u0439: \u043c\u044b \u043e\u043f\u044f\u0442\u044c \u0431\u0443\u0434\u0435\u043c \u0441\u043f\u0443\u0441\u043a\u0430\u0442\u044c\u0441\u044f \u0432\u043d\u0438\u0437 \u0438 \u043f\u0440\u043e\u0432\u0435\u0440\u044f\u0442\u044c \u043b\u0435\u0432\u043e\u0433\u043e \u0438 \u043f\u0440\u0430\u0432\u043e\u0433\u043e \u0440\u0435\u0431\u0435\u043d\u043a\u0430. \u0415\u0441\u043b\u0438 \u0438\u0441\u043a\u043e\u043c\u043e\u0435 k \u043b\u0435\u0436\u0438\u0442 \u0432 \u043b\u0435\u0432\u043e\u043c \u0440\u0435\u0431\u0435\u043d\u043a\u0435, \u0442\u043e \u0437\u043d\u0430\u0447\u0438\u0442 \u043d\u0430\u043c \u043d\u0430\u0434\u043e \u0441\u043f\u0443\u0441\u0442\u0438\u0442\u044c\u0441\u044f \u0432 \u043b\u0435\u0432\u043e\u0433\u043e \u0440\u0435\u0431\u0435\u043d\u043a\u0430. \u0418\u043d\u0430\u0447\u0435 \u043d\u0443\u0436\u043d\u043e \u0441\u043f\u0443\u0441\u043a\u0430\u0442\u044c\u0441\u044f \u0432 \u043f\u0440\u0430\u0432\u043e\u0433\u043e \u0440\u0435\u0431\u0435\u043d\u043a\u0430. \u041a\u043e\u0433\u0434\u0430 \u043c\u044b \u0441\u043f\u0443\u0441\u043a\u0430\u0435\u043c\u0441\u044f \u0432 \u043f\u0440\u0430\u0432\u043e\u0433\u043e \u0440\u0435\u0431\u0435\u043d\u043a\u0430, \u0442\u043e \u043d\u0430\u043c \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0443\u043c\u0435\u043d\u044c\u0448\u0438\u0442\u044c <code>k<\/code> \u043d\u0430 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0438\u0437 \u043b\u0435\u0432\u043e\u0433\u043e \u0440\u0435\u0431\u0435\u043d\u043a\u0430.<\/p>\n<p>\u0414\u043e\u043f\u0443\u0441\u0442\u0438\u043c \u043c\u044b \u0438\u0449\u0435\u043c <code>k = 2<\/code>, \u043d\u0430\u0447\u0438\u043d\u0430\u0435\u043c \u0441 \u043a\u043e\u0440\u043d\u044f. \u0423 \u043a\u043e\u0440\u043d\u044f \u0443 \u043d\u0430\u0441 \u043b\u0435\u0432\u044b\u0439 \u0440\u0435\u0431\u0435\u043d\u043e\u043a \u0440\u0430\u0432\u0435\u043d <code>3<\/code> \u0438 \u043f\u0440\u0430\u0432\u044b\u0439 \u0442\u043e\u0436\u0435 \u0440\u0430\u0432\u0435\u043d <code>3<\/code>. \u042d\u0442\u043e \u0437\u043d\u0430\u0447\u0438\u0442, \u0447\u0442\u043e \u0432 \u043b\u0435\u0432\u043e\u043c \u043e\u0442\u0440\u0435\u0437\u043a\u0435 \u0443 \u043d\u0430\u0441 \u0435\u0441\u0442\u044c \u0442\u0440\u0438 \u0435\u0434\u0438\u043d\u0438\u0446\u044b, \u0441\u043f\u0440\u0430\u0432\u0430 \u0442\u0430\u043a\u0436\u0435. \u041d\u0430\u043c \u0436\u0435 \u043d\u0443\u0436\u043d\u043e \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u0432\u0442\u043e\u0440\u0443\u044e \u0435\u0434\u0438\u043d\u0438\u0446\u0443 \u043f\u043e \u043f\u043e\u0440\u044f\u0434\u043a\u0443. \u0421\u043b\u0435\u0432\u0430 \u0435\u0441\u0442\u044c \u0442\u0440\u0438 \u0435\u0434\u0438\u043d\u0438\u0446\u044b, \u0437\u043d\u0430\u0447\u0438\u0442 \u0432\u0442\u043e\u0440\u0430\u044f \u0435\u0434\u0438\u043d\u0438\u0446\u0430 \u0431\u0443\u0434\u0435\u0442 \u043d\u0430\u0445\u043e\u0434\u0438\u0442\u0441\u044f \u0438\u043c\u0435\u043d\u043d\u043e \u0442\u0430\u043c, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u0441\u043f\u0443\u0441\u043a\u0430\u0435\u043c\u0441\u044f \u0432\u043b\u0435\u0432\u043e. \u0414\u0430\u043b\u0435\u0435 \u0443 \u043d\u0430\u0441 \u043f\u043e\u043b\u0443\u0447\u0430\u044e\u0442\u0441\u044f \u043b\u0435\u0432\u044b\u0439 \u043e\u0442\u0440\u0435\u0437\u043e\u043a \u0441 \u043e\u0434\u043d\u043e\u0439 \u0435\u0434\u0438\u043d\u0438\u0446\u0435\u0439 \u0438 \u043f\u0440\u0430\u0432\u044b\u0439 \u043e\u0442\u0440\u0435\u0437\u043e\u043a \u0441 \u0434\u0432\u0443\u043c\u044f \u0435\u0434\u0438\u043d\u0438\u0446\u0430\u043c\u0438. \u041b\u0435\u0432\u044b\u0439 \u043e\u0442\u0440\u0435\u0437\u043e\u043a \u043d\u0430\u043c \u043d\u0435 \u043f\u043e\u0434\u0445\u043e\u0434\u0438\u0442, \u043f\u043e\u0442\u043e\u043c\u0443 \u0447\u0442\u043e \u043d\u0430\u043c \u043d\u0443\u0436\u043d\u043e \u0434\u0432\u0435 \u0435\u0434\u0438\u043d\u0438\u0446\u044b, \u0430 \u0441\u043b\u0435\u0432\u0430 \u0432\u0441\u0435\u0433\u043e \u043e\u0434\u043d\u0430 \u0435\u0434\u0438\u043d\u0438\u0446\u0430, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u0438\u0434\u0435\u043c \u0432\u043f\u0440\u0430\u0432\u043e. \u041d\u043e \u0442\u0443\u0442 <strong>\u0432\u0430\u0436\u043d\u043e<\/strong> \u043c\u044b \u043f\u0440\u0430\u0432\u044b\u0439 \u043e\u0442\u0440\u0435\u0437\u043e\u043a \u043d\u0438\u0447\u0435\u0433\u043e \u043d\u0435 \u0437\u043d\u0430\u0435\u0442 \u043f\u0440\u043e \u0442\u043e, \u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0435\u0434\u0438\u043d\u0438\u0446 \u0431\u044b\u043b\u043e \u0441\u043b\u0435\u0432\u043e \u043e\u0442 \u043d\u0435\u0433\u043e, \u0438\u043c\u0435\u043d\u043d\u043e \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u043d\u0443\u0436\u043d\u043e \u0443\u043c\u0435\u043d\u044c\u0448\u0438\u0442\u044c k \u043d\u0430 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0435\u0434\u0438\u043d\u0438\u0446 \u0441\u043b\u0435\u0432\u0430.<\/p>\n<pre><code class=\"cpp\">int kith(int k, int x, int xl, int xr) {     if (xl == xr - 1) return xl;     int xm = (xl + xr) \/ 2;    \/\/ \u0438\u0434\u0435\u043c \u0432\u043b\u0435\u0432\u043e, \u0435\u0441\u043b\u0438 \u0441\u043b\u0435\u0432\u0430 \u0438\u0441\u043a\u043e\u043c\u043e\u0435 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0435\u0434\u0438\u043d\u0438\u0446    if (t[x * 2 + 1] >= k) {       return kith(k, x * 2 + 1, xl, xm);     } else { \/\/ \u0443\u043c\u0435\u043d\u044c\u0448\u0430\u0435\u043c k, \u043f\u043e\u0442\u043e\u043c\u0443 \u0447\u0442\u043e \u0441\u043b\u0435\u0432\u0430 \u0443\u0436\u0435 \u0431\u044b\u043b\u0438 \u043a\u0430\u043a\u0438\u0435-\u0442\u043e \u0435\u0434\u0438\u043d\u0438\u0446\u044b     return kith(k - t[x * 2 + 1], x * 2 + 2, xm, xr);     }   } <\/code><\/pre>\n<p>\u041f\u043e\u043b\u043d\u043e\u0435 \u0440\u0435\u0448\u0435\u043d\u0438\u0435 \u043c\u043e\u0436\u043d\u043e \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c \u043d\u0430 <a href=\"https:\/\/github.com\/lld4n\/leetcode\/blob\/master\/%D0%B4%D1%80%D1%83%D0%B3%D0%BE%D0%B5\/%D1%82%D0%B8%D0%BD%D1%8C%D0%BA%D0%BE%D1%84%D1%84.%D0%B0%D0%B8%D1%81%D0%B4\/8\/C.cpp\" rel=\"noopener noreferrer nofollow\">GitHub<\/a><\/p>\n<h2>\u0428\u0435\u0441\u0442\u0430\u044f \u0437\u0430\u0434\u0430\u0447\u0430<\/h2>\n<p><strong>\u041e\u0440\u0438\u0433\u0438\u043d\u0430\u043b\u044c\u043d\u0430\u044f \u0437\u0430\u0434\u0430\u0447\u0430<\/strong><br \/> \u0412 \u044d\u0442\u043e\u0439 \u0437\u0430\u0434\u0430\u0447\u0435 \u0432\u0430\u043c \u043d\u0443\u0436\u043d\u043e \u0434\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u0432 \u0434\u0435\u0440\u0435\u0432\u043e \u043e\u0442\u0440\u0435\u0437\u043a\u043e\u0432 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u044e \u043d\u0430\u0445\u043e\u0436\u0434\u0435\u043d\u0438\u044f \u043f\u043e \u0434\u0430\u043d\u043d\u044b\u043c x \u0438 l \u043c\u0438\u043d\u0438\u043c\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u0438\u043d\u0434\u0435\u043a\u0441\u0430 j, \u0434\u043b\u044f \u043a\u043e\u0442\u043e\u0440\u043e\u0433\u043e <code>j >= l<\/code> \u0438 <code>a[j] >= x<\/code>. \u0415\u0441\u043b\u0438 \u0442\u0430\u043a\u043e\u0433\u043e \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u0430 \u043d\u0435\u0442, \u0442\u043e \u043d\u0443\u0436\u043d\u043e \u0432\u0435\u0440\u043d\u0443\u0442\u044c <code>-1<\/code><\/p>\n<p>\u0412 \u0441\u0442\u0430\u0442\u044c\u0435 <a href=\"http:\/\/e-maxx.ru\/algo\/segment_tree#16\" rel=\"noopener noreferrer nofollow\">e-maxx<\/a> \u0443\u043a\u0430\u0437\u0430\u043d \u043e\u0431\u0449\u0438\u0439 \u0441\u043b\u0443\u0447\u0430\u0439, \u043a\u043e\u0433\u0434\u0430 \u0435\u0441\u0442\u044c \u0438 \u043f\u0440\u0430\u0432\u0430\u044f \u0433\u0440\u0430\u043d\u0438\u0446\u0430, \u0432 \u0441\u0432\u043e\u0435\u043c \u0440\u0435\u0448\u0435\u043d\u0438\u0435 \u043e\u043d\u0438 \u0445\u0440\u0430\u043d\u044f\u0442 \u0432 \u043a\u0430\u0436\u0434\u043e\u043c \u0443\u0437\u043b\u0435 \u043e\u0442\u0441\u043e\u0440\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0439 \u0441\u043f\u0438\u0441\u043e\u043a \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u0439 \u043e\u0442\u0440\u0435\u0437\u043a\u0443.<\/p>\n<p>\u0412 \u043d\u0430\u0448\u0435\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u043f\u0440\u0430\u0432\u043e\u0439 \u0433\u0440\u0430\u043d\u0438\u0446\u044b \u043d\u0435\u0442, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u0434\u043b\u044f \u0440\u0435\u0448\u0435\u043d\u0438\u044f \u044d\u0442\u043e\u0439 \u0437\u0430\u0434\u0430\u0447\u0438 \u0431\u0443\u0434\u0435\u043c \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0434\u0435\u0440\u0435\u0432\u043e \u043e\u0442\u0440\u0435\u0437\u043a\u043e\u0432, \u043a\u043e\u0442\u043e\u0440\u043e\u0435 \u0441\u0442\u0440\u043e\u0438\u0442\u0441\u044f \u043d\u0430 \u043e\u0441\u043d\u043e\u0432\u0435 \u043c\u0430\u043a\u0441\u0438\u043c\u0443\u043c\u0430. \u0422\u043e \u0435\u0441\u0442\u044c \u043a\u0430\u0436\u0434\u044b\u0439 \u0443\u0437\u0435\u043b \u0431\u0443\u0434\u0435\u0442 \u0445\u0440\u0430\u043d\u0438\u0442\u044c \u043c\u0430\u043a\u0441\u0438\u043c\u0443\u043c \u043f\u043e\u0442\u043e\u043c\u043a\u043e\u0432.<\/p>\n<figure class=\"\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w780q1\/getpro\/habr\/post_images\/3d9\/273\/dab\/3d9273dabd7911c2cbf21be8d4d1bbf8.jpg\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/post_images\/3d9\/273\/dab\/3d9273dabd7911c2cbf21be8d4d1bbf8.jpg\" data-blurred=\"true\"\/><\/figure>\n<p>\u0410\u043b\u0433\u043e\u0440\u0438\u0442\u043c \u043f\u043e\u0438\u0441\u043a\u0430 \u043c\u0438\u043d\u0438\u043c\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u0438\u043d\u0434\u0435\u043a\u0441\u0430 \u0431\u0443\u0434\u0435\u0442 \u0432\u044b\u0433\u043b\u044f\u0434\u0435\u0442\u044c \u0442\u0430\u043a:<\/p>\n<ul>\n<li>\n<p>\u0415\u0441\u043b\u0438 \u0442\u0435\u043a\u0443\u0449\u0435\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u043c\u0435\u043d\u044c\u0448\u0435 \u0438\u0441\u043a\u043e\u043c\u043e\u0433\u043e <code>x<\/code> \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u043c <code>-1<\/code><\/p>\n<\/li>\n<li>\n<p>\u0415\u0441\u043b\u0438 \u043c\u044b \u0432\u044b\u0448\u043b\u0438 \u0437\u0430 \u0433\u0440\u0430\u043d\u0438\u0446\u044b <code>j >= l<\/code>, \u0442\u043e \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u043c <code>-1<\/code><\/p>\n<\/li>\n<li>\n<p>\u0415\u0441\u043b\u0438 \u043c\u044b \u0441\u0436\u0430\u043b\u0438\u0441\u044c \u0434\u043e \u043e\u0434\u043d\u043e\u0433\u043e \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u0430, \u0442\u043e \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u043c \u0435\u0433\u043e \u0438\u043d\u0434\u0435\u043a\u0441<\/p>\n<\/li>\n<li>\n<p>\u0418\u043d\u0430\u0447\u0435 \u043f\u043e\u043e\u0447\u0435\u0440\u0435\u0434\u043d\u043e \u043f\u0440\u043e\u0432\u0435\u0440\u044f\u0435\u043c \u043b\u0435\u0432\u043e\u0433\u043e \u0438 \u043f\u0440\u0430\u0432\u043e\u0433\u043e \u0440\u0435\u0431\u0435\u043d\u043a\u0430 \u0438 \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u043c \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442<\/p>\n<\/li>\n<\/ul>\n<pre><code class=\"cpp\">int above(int v, int l, int x, int lx, int rx) {     if (t[x] &lt; v)       return -1;     if (rx &lt;= l)       return -1;     if (rx == lx + 1) {       return lx;     }     int m = (lx + rx) \/ 2;     int res = above(v, l, 2 * x + 1, lx, m);     if (res == -1) {       res = above(v, l, 2 * x + 2, m, rx);     }     return res;   } <\/code><\/pre>\n<p>\u0420\u0430\u0437\u0431\u0435\u0440\u0435\u043c \u043d\u0430 \u043f\u0440\u0438\u043c\u0435\u0440, \u043a\u043e\u0433\u0434\u0430 \u043d\u0430\u043c \u043d\u0443\u0436\u043d\u043e \u043d\u0430\u0439\u0442\u0438 \u043c\u0438\u043d\u0438\u043c\u0430\u043b\u044c\u043d\u044b\u0439 \u0438\u043d\u0434\u0435\u043a\u0441 <code>j<\/code>, \u0442\u0430\u043a\u043e\u0439 \u0447\u0442\u043e <code>j >= 0<\/code> \u0438 <code>arr[j] >= 3<\/code>. \u041d\u0430 \u0440\u0438\u0441\u0443\u043d\u043a\u0435 \u043d\u0438\u0436\u0435 \u0444\u0438\u043e\u043b\u0435\u0442\u043e\u0432\u044b\u043c \u044f \u0443\u043a\u0430\u0437\u0430\u043b \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u0434\u043b\u044f \u043a\u0430\u0436\u0434\u043e\u0433\u043e \u0443\u0437\u043b\u0430. \u041f\u0440\u0438 \u044d\u0442\u043e\u043c \u044f \u043d\u0430\u043f\u0438\u0441\u0430\u043b \u0432\u044b\u0447\u0438\u0441\u043b\u0435\u043d\u043d\u044b\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u0434\u043b\u044f \u043a\u0430\u0436\u0434\u043e\u0433\u043e \u0443\u0437\u043b\u0430, \u0445\u043e\u0442\u044f \u043d\u0430 \u0434\u0435\u043b\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0431\u0443\u0434\u0435\u0442 \u0432\u044b\u0447\u0438\u0441\u043b\u0435\u043d\u043e \u0442\u043e\u043b\u044c\u043a\u043e \u0434\u043b\u044f \u0443\u0437\u043b\u043e\u0432 \u0441 \u0438\u043d\u0434\u0435\u043a\u0441\u043e\u043c (\u043e\u0440\u0430\u043d\u0436\u0435\u0432\u043e\u0435 \u0447\u0438\u0441\u043b\u043e) &#8212; <code>0, 1, 3, 7, 8<\/code>, \u043f\u043e\u0442\u043e\u043c\u0443 \u0447\u0442\u043e \u043f\u0435\u0440\u0435\u0434 \u0442\u0435\u043c, \u043a\u0430\u043a \u0432\u044b\u0447\u0438\u0441\u043b\u044f\u0442\u044c \u043f\u0440\u0430\u0432\u044b\u0439, \u043c\u044b \u0432\u044b\u0447\u0438\u0441\u043b\u044f\u0435\u043c \u043b\u0435\u0432\u044b\u0439 \u0438 \u0435\u0441\u043b\u0438 \u043e\u043d \u0440\u0430\u0432\u0435\u043d <code>-1<\/code>, \u0442\u043e \u0442\u043e\u043b\u044c\u043a\u043e \u0432 \u0442\u0430\u043a\u043e\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u0432\u044b\u0447\u0438\u0441\u043b\u044f\u0435\u043c \u043f\u0440\u0430\u0432\u044b\u0439. \u0421\u0445\u0435\u043c\u0430 \u0442\u0430\u043a\u0430\u044f: \u0435\u0441\u043b\u0438 \u0441\u043b\u0435\u0432\u0430 \u0443\u0436\u0435 \u0435\u0441\u0442\u044c \u043a\u0430\u043a\u043e\u0439-\u0442\u043e  \u0438\u043d\u0434\u0435\u043a\u0441, \u043f\u043e\u0434\u0445\u043e\u0434\u044f\u0449\u0438\u0439 \u043d\u0430\u043c, \u0442\u043e \u043d\u0430\u043c \u0443\u0436\u0435 \u0432 \u043f\u0440\u0438\u043d\u0446\u0438\u043f\u0435 \u043d\u0435 \u043d\u0443\u0436\u043d\u0430 \u043f\u0440\u0430\u0432\u0430\u044f \u0447\u0430\u0441\u0442\u044c, \u043f\u043e\u0442\u043e\u043c\u0443 \u0447\u0442\u043e \u043e\u043d\u0430 <strong>\u0442\u043e\u0447\u043d\u043e<\/strong> \u0431\u0443\u0434\u0435\u0442 \u0431\u043e\u043b\u044c\u0448\u0435, \u0447\u0435\u043c \u0438\u043d\u0434\u0435\u043a\u0441, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0432\u0435\u0440\u043d\u0443\u043b\u0441\u044f \u0441\u043b\u0435\u0432\u0430.<\/p>\n<figure class=\"\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w780q1\/getpro\/habr\/post_images\/9a3\/4b9\/358\/9a34b935801ec2000f229c9d7de0b22a.jpg\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/post_images\/9a3\/4b9\/358\/9a34b935801ec2000f229c9d7de0b22a.jpg\" data-blurred=\"true\"\/><\/figure>\n<p>\u041f\u043e\u043b\u043d\u043e\u0435 \u0440\u0435\u0448\u0435\u043d\u0438\u0435 \u043c\u043e\u0436\u043d\u043e \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c \u043d\u0430 <a href=\"https:\/\/github.com\/lld4n\/leetcode\/blob\/master\/%D0%B4%D1%80%D1%83%D0%B3%D0%BE%D0%B5\/%D1%82%D0%B8%D0%BD%D1%8C%D0%BA%D0%BE%D1%84%D1%84.%D0%B0%D0%B8%D1%81%D0%B4\/8\/D.cpp\" rel=\"noopener noreferrer nofollow\">GitHub<\/a><\/p>\n<h2>\u0414\u0435\u0440\u0435\u0432\u043e \u0424\u0435\u043d\u0432\u0438\u043a\u0430<\/h2>\n<p>\u0438\u043b\u0438 <strong>\u0414\u0432\u043e\u0438\u0447\u043d\u043e\u0435 \u0438\u043d\u0434\u0435\u043a\u0441\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u043e\u0435 \u0434\u0435\u0440\u0435\u0432\u043e<\/strong> \u0431\u044b\u043b\u043e \u0432\u043f\u0435\u0440\u0432\u044b\u0435 \u043e\u043f\u0438\u0441\u0430\u043d\u043e \u0440\u043e\u0441\u0441\u0438\u0439\u0441\u043a\u0438\u043c \u0443\u0447\u0435\u043d\u044b\u043c-\u043c\u0430\u0442\u0435\u043c\u0430\u0442\u0438\u043a\u043e\u043c \u0411. \u042f. \u0420\u044f\u0431\u043a\u043e \u0432 1989 \u0433\u043e\u0434\u0443. \u0412 1994 \u0433\u043e\u0434\u0443 \u043f\u043e\u044f\u0432\u0438\u043b\u0430\u0441\u044c \u0441\u0442\u0430\u0442\u044c\u044f \u041f. \u0424\u0435\u043d\u0432\u0438\u043a\u0430, \u0433\u0434\u0435 \u0431\u044b\u043b\u0430 \u043e\u043f\u0438\u0441\u0430\u043d\u0430 \u0442\u0430 \u0436\u0435 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0430, \u043a\u043e\u0442\u043e\u0440\u0443\u044e \u0432\u043f\u043e\u0441\u043b\u0435\u0434\u0441\u0442\u0432\u0438\u0438 \u043d\u0430\u0437\u0432\u0430\u043b\u0438 <strong>\u0414\u0435\u0440\u0435\u0432\u043e\u043c \u0424\u0435\u043d\u0432\u0438\u043a\u0430<\/strong><\/p>\n<p>\u0412\u0441\u043f\u043e\u043c\u043d\u0438\u043c \u0432\u0442\u043e\u0440\u0443\u044e \u0437\u0430\u0434\u0430\u0447\u0443<br \/> \u0414\u0430\u043d \u043c\u0430\u0441\u0441\u0438\u0432 <em>arr<\/em> \u0446\u0435\u043b\u044b\u0445 \u0447\u0438\u0441\u0435\u043b \u0440\u0430\u0437\u043c\u0435\u0440\u043e\u043c <em>n<\/em>. \u041d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0432\u044b\u043f\u043e\u043b\u043d\u0438\u0442\u044c <em>m<\/em> \u0437\u0430\u043f\u0440\u043e\u0441\u043e\u0432. \u041a\u0430\u0436\u0434\u044b\u0439 \u0437\u0430\u043f\u0440\u043e\u0441 \u0432\u044b\u0433\u043b\u044f\u0434\u0438\u0442 \u0442\u0430\u043a:<\/p>\n<ul>\n<li>\n<p><code>sum(l,r)<\/code> &#8212; \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u043d\u0430\u0439\u0442\u0438 \u0441\u0443\u043c\u043c\u0443 \u043e\u0442\u0440\u0435\u0437\u043a\u0430 \u043e\u0442 <code>l<\/code> \u0434\u043e <code>r - 1<\/code> \u0438 \u0432\u0435\u0440\u043d\u0443\u0442\u044c \u0435\u0435. \u0424\u043e\u0440\u043c\u0430\u043b\u044c\u043d\u043e: <code>sum(l,r) = a[l] + a[l + 1] + ... + a[r - 1]<\/code><\/p>\n<\/li>\n<li>\n<p><code>inc(i, v)<\/code> &#8212; \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u0442 <code>v<\/code> \u043a \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0443 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u0430 <code>arr[i]<\/code>. \u041f\u043e \u0441\u0443\u0442\u0438 \u0437\u0430\u043c\u0435\u043d\u0443 \u043c\u043e\u0436\u043d\u043e \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u0442\u044c \u0432 \u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0438\u0435.<\/p>\n<\/li>\n<\/ul>\n<p>\u0414\u0435\u0440\u0435\u0432\u043e \u0424\u0435\u043d\u0432\u0438\u043a\u0430 \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u0437\u0430 <code>O(logn)<\/code>. \u041d\u043e \u0435\u0441\u0442\u044c \u0440\u044f\u0434 \u043e\u0441\u043e\u0431\u0435\u043d\u043d\u043e\u0441\u0442\u0438<\/p>\n<ul>\n<li>\n<p>\u041f\u0438\u0441\u0430\u0442\u044c \u0434\u0435\u0440\u0435\u0432\u043e \u0424\u0435\u043d\u0432\u0438\u043a\u0430 \u043f\u0440\u043e\u0449\u0435<\/p>\n<\/li>\n<li>\n<p>\u0420\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u0447\u0443\u0442\u044c \u0431\u044b\u0441\u0442\u0440\u0435\u0435, \u043f\u043e\u0442\u043e\u043c\u0443 \u0447\u0442\u043e \u043a\u043e\u043d\u0441\u0442\u0430\u043d\u0442\u044b \u043c\u0435\u043d\u044c\u0448\u0435<\/p>\n<\/li>\n<li>\n<p>\u0417\u0430\u043d\u0438\u043c\u0430\u0435\u0442 \u043c\u0435\u043d\u044c\u0448\u0435 \u043f\u0430\u043c\u044f\u0442\u0438, \u0447\u0435\u043c \u0434\u0435\u0440\u0435\u0432\u043e \u043e\u0442\u0440\u0435\u0437\u043a\u043e\u0432. \u041b\u0443\u0447\u0448\u0438\u0439 \u0432\u0430\u0440\u0438\u0430\u043d\u0442 \u0434\u0435\u0440\u0435\u0432\u0430 \u043e\u0442\u0440\u0435\u0437\u043a\u043e\u0432 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442 <code>O(2n)<\/code> \u043f\u0430\u043c\u044f\u0442\u0438. \u0414\u0435\u0440\u0435\u0432\u043e \u0444\u0435\u043d\u0432\u0438\u043a\u0430 \u0436\u0435 \u0445\u0440\u0430\u043d\u0438\u0442 \u043e\u0434\u0438\u043d \u043c\u0430\u0441\u0441\u0438\u0432 \u0434\u043b\u0438\u043d\u043e\u0439 <code>n<\/code>.<\/p>\n<\/li>\n<\/ul>\n<p>\u0420\u0430\u0437\u0431\u0435\u0440\u0435\u043c \u0438\u0434\u0435\u044e \u043f\u043e \u043f\u043e\u0440\u044f\u0434\u043a\u0443<br \/> \u041f\u0443\u0441\u0442\u044c \u0443 \u043d\u0430\u0441 \u0431\u0443\u0434\u0435\u0442 \u043c\u0430\u0441\u0441\u0438\u0432 <code>f<\/code> \u0434\u043b\u0438\u043d\u043e\u0439 <code>n<\/code>, \u0433\u0434\u0435 \u043a\u0430\u0436\u0434\u044b\u0439 \u044d\u043b\u0435\u043c\u0435\u043d\u0442 \u043c\u0430\u0441\u0441\u0438\u0432\u0430 \u0431\u0443\u0434\u0435\u0442 \u0441\u0443\u043c\u043c\u043e\u0439 \u043d\u0430 \u043a\u0430\u043a\u043e\u043c-\u0442\u043e \u043e\u0442\u0440\u0435\u0437\u043a\u0435, \u0442\u043e \u0435\u0441\u0442\u044c <code>f[i] = \u03a3 arr[p(i) ... i]<\/code>. \u0422\u043e \u0435\u0441\u0442\u044c \u0443\u0441\u043b\u043e\u0432\u043d\u043e \u043d\u0430\u043c \u0434\u0430\u043d \u043a\u0430\u043a\u043e\u0439-\u0442\u043e <code>i<\/code>, \u043c\u044b \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u0444\u0443\u043d\u043a\u0446\u0438\u0438 <code>p(i)<\/code> \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u043c \u043b\u0435\u0432\u0443\u044e \u0433\u0440\u0430\u043d\u0438\u0446\u0443 \u043e\u0442\u0440\u0435\u0437\u043a\u0430 \u0438 \u0437\u0430\u043d\u043e\u0441\u0438\u043c \u0432 <code>f[i]<\/code> \u0441\u0443\u043c\u043c\u0443 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432 \u043e\u0442 \u043b\u0435\u0432\u043e\u0439 \u0433\u0440\u0430\u043d\u0438\u0446\u044b (<code>p(i)<\/code>) \u0434\u043e \u043f\u0440\u0430\u0432\u043e\u0439 (<code>i<\/code>)<\/p>\n<p>\u041a\u0430\u043a \u0431\u0443\u0434\u0435\u043c \u0432\u044b\u0447\u0438\u0441\u043b\u044f\u0442\u044c \u0441\u0443\u043c\u043c\u0443 \u043e\u0442 <code>l<\/code> \u0434\u043e <code>r - 1<\/code>. \u041a\u0430\u043a \u043c\u044b \u044d\u0442\u043e \u0434\u0435\u043b\u0430\u043b\u0438 \u0432 \u043f\u0435\u0440\u0432\u043e\u0439 \u0437\u0430\u0434\u0430\u0447\u0435, \u0442\u043e \u0435\u0441\u0442\u044c \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u043f\u0440\u0435\u0444\u0438\u043a\u0441\u043d\u044b\u0445 \u0441\u0443\u043c\u043c:<br \/> <code>sum(l, r) = sum(0, r) - sum(0, l)<\/code><\/p>\n<p>\u0423\u043f\u0440\u043e\u0441\u0442\u0438\u043c \u0438 \u0441\u0434\u0435\u043b\u0430\u0435\u043c, \u0447\u0442\u043e <code>sum(r) = sum(0, r)<\/code>. \u041a\u0430\u043a \u043c\u044b \u0431\u0443\u0434\u0435\u043c \u0432\u044b\u0447\u0438\u0441\u043b\u044f\u0442\u044c <code>sum(r)<\/code> &#8212; \u0442\u043e \u0435\u0441\u0442\u044c \u0441\u0443\u043c\u043c\u0443 \u0432\u0441\u0435\u0445 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432 \u0434\u043e <code>r - 1<\/code><\/p>\n<pre><code class=\"cpp\">int sum(int r) {     int i = r - 1;     int res = 0;     while (i >= 0) {       res += f[i];       i = p(i) - 1;     }     return res;   } <\/code><\/pre>\n<p>\u041d\u0430\u0433\u043b\u044f\u0434\u043d\u043e \u043c\u043e\u0436\u043d\u043e \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c \u043d\u0438\u0436\u0435. \u0424\u0443\u043d\u043a\u0446\u0438\u044e <code>p(i)<\/code> \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0438\u043c \u043f\u043e\u043f\u043e\u0437\u0436\u0435, \u0434\u043b\u044f \u043d\u0430\u0433\u043b\u044f\u0434\u043d\u043e\u0441\u0442\u0438 \u044f \u0440\u0435\u0448\u0438\u043b, \u0447\u0442\u043e <code>p(6) = 4<\/code> <\/p>\n<figure class=\"\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w780q1\/getpro\/habr\/post_images\/650\/b35\/ace\/650b35ace02bfeb587d208aab83a1d21.jpg\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/post_images\/650\/b35\/ace\/650b35ace02bfeb587d208aab83a1d21.jpg\" data-blurred=\"true\"\/><\/figure>\n<p>\u041a\u0430\u043a \u0432\u044b\u043f\u043e\u043b\u043d\u0438\u0442\u044c \u0444\u0443\u043d\u043a\u0446\u0438\u044e <code>inc(i, v)<\/code>? \u0414\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u043d\u0443\u0436\u043d\u043e \u043d\u0430\u0439\u0442\u0438 \u0432\u0441\u0435 \u0438\u043d\u0434\u0435\u043a\u0441\u044b \u043c\u0430\u0441\u0441\u0438\u0432\u0430 <code>f<\/code> \u0432 \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043f\u043e\u043f\u0430\u0434\u0430\u0435\u0442 <code>i<\/code> \u0438 \u043f\u0440\u0438\u0431\u0430\u0432\u0438\u0442\u044c \u043a \u043d\u0438\u043c \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 <code>v<\/code>. \u0420\u0430\u0437\u0431\u0435\u0440\u0435\u043c\u0441\u044f \u043a\u0430\u043a \u044d\u0442\u043e \u0434\u0435\u043b\u0430\u0442\u044c \u0431\u044b\u0441\u0442\u0440\u043e \u0434\u0430\u043b\u044c\u0448\u0435 \u043f\u043e \u0442\u0435\u043a\u0441\u0442\u0443.<\/p>\n<figure class=\"\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w780q1\/getpro\/habr\/post_images\/a4d\/8f7\/2fa\/a4d8f72fa23b99fc61a7682a100cf507.jpg\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/post_images\/a4d\/8f7\/2fa\/a4d8f72fa23b99fc61a7682a100cf507.jpg\" data-blurred=\"true\"\/><\/figure>\n<p>\u041a\u0430\u043a \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0438\u0442\u044c \u0444\u0443\u043d\u043a\u0446\u0438\u044e <code>p(i)<\/code>?<br \/> \u0412\u043e\u0437\u044c\u043c\u0435\u043c \u0434\u0432\u043e\u0438\u0447\u043d\u043e\u0435 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u0447\u0438\u0441\u043b\u0430 <code>i<\/code> &#8212; <code>......011111<\/code><br \/> \u0418 \u0437\u0430\u043c\u0435\u043d\u0438\u043c \u0432\u0441\u0435 \u0435\u0434\u0438\u043d\u0438\u0446\u044b \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0435\u0433\u043e \u043d\u0443\u043b\u044f \u043d\u0430 <code>0<\/code> &#8212; <code>......000000<\/code><br \/> \u0412 \u0442\u0430\u043a\u043e\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u0434\u043b\u044f \u043a\u0430\u0436\u0434\u043e\u0433\u043e \u0447\u0435\u0442\u043d\u043e\u0433\u043e \u0447\u0438\u0441\u043b\u0430 <code>p(i)<\/code> \u0431\u0443\u0434\u0435\u0442 \u0440\u0430\u0432\u0435\u043d \u0441\u0430\u043c\u043e\u043c\u0443 \u044d\u0442\u043e\u043c\u0443 \u0447\u0438\u0441\u043b\u0443. \u0410 \u0434\u043b\u044f \u043d\u0435\u0447\u0435\u0442\u043d\u044b\u0445 \u0431\u0443\u0434\u0435\u0442 \u043e\u0431\u0440\u0430\u0437\u043e\u0432\u044b\u0432\u0430\u0442\u044c\u0441\u044f \u0437\u0430\u043a\u043e\u043d\u043e\u043c\u0435\u0440\u043d\u043e\u0441\u0442\u044c. \u0424\u0443\u043d\u043a\u0446\u0438\u044e \u043c\u043e\u0436\u043d\u043e \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0438\u0442\u044c \u0442\u0430\u043a: <code>p(i) = i &amp; (i + 1)<\/code><\/p>\n<p>\u0424\u0443\u043d\u043a\u0446\u0438\u044f <code>sum<\/code> \u043d\u0435 \u043c\u0435\u043d\u044f\u0435\u0442\u0441\u044f, \u043c\u044b \u043f\u0440\u043e\u0441\u0442\u043e \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0438\u043b\u0438 \u0444\u0443\u043d\u043a\u0446\u0438\u044e <code>p(i)<\/code>. \u0410 \u0444\u0443\u043d\u043a\u0446\u0438\u044f <code>inc(i, v)<\/code> \u0442\u0435\u043f\u0435\u0440\u044c \u043c\u044b \u043c\u043e\u0436\u0435\u043c \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0438\u0442\u044c. \u041d\u0430\u043c \u0434\u0430\u043d\u043e <code>i<\/code> \u0438 \u043d\u0430\u043c \u043d\u0443\u0436\u043d\u044b \u0432\u0441\u0435 \u0442\u0430\u043a\u0438\u0435 \u0438\u043d\u0434\u0435\u043a\u0441\u044b <code>j<\/code>, \u0447\u0442\u043e <code>i \u220a [p(j), j]<\/code><br \/> \u0414\u043e\u043f\u0443\u0441\u0442\u0438\u043c \u043d\u0430\u043c \u0443 \u043d\u0430\u0441 \u0435\u0441\u0442\u044c \u0434\u0432\u043e\u0438\u0447\u043d\u043e\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435<br \/> <code>   j = .....0111<\/code><br \/> <code>   i = .....0???<\/code><br \/> <code>p(j) = .....0000<\/code><\/p>\n<p><code>i<\/code> \u043b\u0435\u0436\u0438\u0442 \u043c\u0435\u0436\u0434\u0443 <code>j<\/code> \u0438 <code>p(j)<\/code>. \u0422\u0435\u043f\u0435\u0440\u044c \u043e\u0431\u0440\u0430\u0442\u043d\u043e\u0435, \u043d\u0430\u043c \u0434\u0430\u043d\u043e <code>i<\/code>, \u043d\u0430\u043c \u043d\u0430\u0434\u043e \u043d\u0430\u0439\u0442\u0438 \u0432\u0441\u0435 <code>j<\/code>. \u041f\u043e \u0441\u0443\u0442\u0438 \u043d\u0430\u043c \u043d\u0443\u0436\u043d\u043e \u043f\u0440\u043e\u0439\u0442\u0438\u0441\u044c \u043f\u043e\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u043e \u043f\u043e \u0432\u0441\u0435\u043c \u043d\u0443\u043b\u044f\u043c \u0432 <code>i<\/code> \u0438 \u043c\u0435\u043d\u044f\u0442\u044c \u0438\u0445 \u043d\u0430 \u0435\u0434\u0438\u043d\u0438\u0446\u0443. \u0422\u043e \u0435\u0441\u0442\u044c <code>j | (j + 1)<\/code><\/p>\n<p>\u041d\u0430\u0433\u043b\u044f\u0434\u043d\u044b\u0439 \u043f\u0440\u0438\u043c\u0435\u0440:<br \/> <code>i = 01010<\/code><br \/> <code>j = 01010<\/code><br \/> <code>    01011<\/code><br \/> <code>    01111<\/code><br \/> <code>    11111<\/code><\/p>\n<p>\u041a\u043e\u0434 \u0432\u044b\u0433\u043b\u044f\u0434\u0438\u0442 \u0442\u0430\u043a:<\/p>\n<pre><code class=\"cpp\">void inc(int i, int v) {     int j = i;     while (j &lt; f.size()) {       f[j] += v;       j = j | (j + 1);     }   } <\/code><\/pre>\n<p>\u0412\u043e\u0442 \u0438 \u0432\u0441\u0435, \u0434\u0435\u0440\u0435\u0432\u043e \u0424\u0435\u043d\u0432\u0438\u043a\u0430 \u0433\u043e\u0442\u043e\u0432\u043e. \u041a \u0441\u043e\u0436\u0430\u043b\u0435\u043d\u0438\u044e \u0434\u0435\u0440\u0435\u0432\u043e \u0424\u0435\u043d\u0432\u0438\u043a\u0430 \u043d\u0435\u043b\u044c\u0437\u044f \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0434\u043b\u044f \u043d\u0435\u043e\u0431\u0440\u0430\u0442\u043d\u044b\u0445 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0439, \u043a\u0430\u043a \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0434\u043b\u044f \u0441\u0443\u043c\u043c \u043c\u044b \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043b\u0438 <code>sum(0,r) - sum(0,l)<\/code>. \u041f\u043e\u043b\u043d\u0430\u044f \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f \u0434\u0435\u0440\u0435\u0432\u0430 \u0424\u0435\u043d\u0432\u0438\u043a\u0430:<\/p>\n<pre><code class=\"cpp\">int n; int a[100000];  \/\/\u043c\u0430\u0441\u0441\u0438\u0432 int f[100000];  \/\/\u0434\u0435\u0440\u0435\u0432\u043e \u0424\u0435\u043d\u0432\u0438\u043a\u0430  int sum(int x) {     int result = 0;     for (; x >= 0; x = (x &amp; (x + 1)) - 1) {         result += f[x];     }     return result; }  int sum(int l, int r) {     if (l) return sum(r) - sum(l - 1); else return sum(r); }  void increase(int idx, int delta) {     a[idx] += delta;     for (; idx &lt; n; idx |= idx + 1) {         f[idx] += delta;     } } <\/code><\/pre>\n<h2>\u0421\u0435\u0434\u044c\u043c\u0430\u044f \u0437\u0430\u0434\u0430\u0447\u0430<\/h2>\n<p><strong>\u0423\u0441\u043b\u043e\u0432\u0438\u0435<\/strong><br \/> \u0414\u0430\u043d \u043c\u0430\u0441\u0441\u0438\u0432 <em>arr<\/em> \u0446\u0435\u043b\u044b\u0445 \u0447\u0438\u0441\u0435\u043b \u0440\u0430\u0437\u043c\u0435\u0440\u043e\u043c <em>n<\/em>. \u041d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0432\u044b\u043f\u043e\u043b\u043d\u0438\u0442\u044c <em>m<\/em> \u0437\u0430\u043f\u0440\u043e\u0441\u043e\u0432. \u041a\u0430\u0436\u0434\u044b\u0439 \u0437\u0430\u043f\u0440\u043e\u0441 \u0432\u044b\u0433\u043b\u044f\u0434\u0438\u0442 \u0442\u0430\u043a:<\/p>\n<ul>\n<li>\n<p><code>max(i)<\/code> &#8212; \u043d\u0430\u0439\u0442\u0438 \u043c\u0430\u043a\u0441\u0438\u043c\u0443\u043c \u0441\u0440\u0435\u0434\u0438 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432 \u043e\u0442 <code>0<\/code> \u0434\u043e <code>i<\/code><\/p>\n<\/li>\n<li>\n<p><code>inc(i, v)<\/code> &#8212; \u0443\u0432\u0435\u043b\u0438\u0447\u0438\u0442\u044c \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u043f\u043e \u0438\u043d\u0434\u0435\u043a\u0441\u0443 <code>i<\/code> \u043d\u0430 <code>v<\/code><\/p>\n<\/li>\n<li>\n<p><code>set(i, v)<\/code> &#8212; \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u043f\u043e \u0438\u043d\u0434\u0435\u043a\u0441\u0443 <code>i<\/code> \u043d\u0430 <code>v<\/code>. \u041f\u0440\u0438\u0447\u0435\u043c <code>v >= arr[i]<\/code><\/p>\n<\/li>\n<\/ul>\n<p>\u0422\u0430\u043a\u0430\u044f \u0437\u0430\u0434\u0430\u0447\u0430 \u043d\u0430\u0437\u044b\u0432\u0430\u0435\u0442\u0441\u044f <strong>\u043f\u043e\u0438\u0441\u043a \u043c\u0430\u043a\u0441\u0438\u043c\u0443\u043c\u0430 \u043d\u0430 \u043f\u0440\u0435\u0444\u0438\u043a\u0441\u0435<\/strong>. \u0414\u0435\u0440\u0435\u0432\u043e \u0424\u0435\u043d\u0432\u0438\u043a\u0430 \u043d\u0435 \u043c\u043e\u0436\u0435\u0442 \u0438\u0441\u043a\u0430\u0442\u044c \u043c\u0430\u043a\u0441\u0438\u043c\u0443\u043c \u043d\u0430 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u043b\u044c\u043d\u043e\u043c \u043e\u0442\u0440\u0435\u0437\u043a\u0435, \u0442\u043e\u043b\u044c\u043a\u043e \u043d\u0430 \u043f\u0440\u0435\u0444\u0438\u043a\u0441\u0435. \u041a\u043e\u0434 \u043e\u0447\u0435\u043d\u044c \u043f\u043e\u0445\u043e\u0436 \u043d\u0430 \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u043e\u0435 \u0434\u0435\u0440\u0435\u0432\u043e \u0424\u0435\u043d\u0432\u0438\u043a\u0430, \u0447\u0443\u0442\u044c \u0447\u0443\u0442\u044c \u043e\u0442\u043b\u0438\u0447\u0430\u044e\u0442\u0441\u044f \u0434\u0435\u0442\u0430\u043b\u0438: \u0432 \u044d\u0442\u043e\u0439 \u0437\u0430\u0434\u0430\u0447\u0435 <code>f[i]<\/code> \u0431\u0443\u0434\u0435\u0442 \u0445\u0440\u0430\u043d\u0438\u0442\u044c \u043c\u0430\u043a\u0441\u0438\u043c\u0443\u043c \u043d\u0430 \u043e\u0442\u0440\u0435\u0437\u043a\u0435 <code>arr[p(i) ... i]<\/code><\/p>\n<pre><code class=\"cpp\">class fenwick {   public:     explicit fenwick(vector&lt;int> &amp;arr) {       n = (int) arr.size();       a = arr;       f.resize(n, 0);       for (int i = 0; i &lt; arr.size(); ++i) {         set(i, arr[i]);       }     }        int mx(int i) {       int res = INT_MIN;       for (; i >= 0; i = (i &amp; (i + 1)) - 1) {         res = max(res, f[i]);       }       return res;     }           void inc(int i, int v) {       a[i] += v;       for (; i &lt; n; i |= i + 1) {         f[i] += v;       }     }        void set(int i, int v) {       a[i] = v;       for (; i &lt; n; i |= i + 1) {         f[i] = max(f[i], v);       }     }      private:     vector&lt;int> f;     vector&lt;int> a;     int n;   }; <\/code><\/pre>\n<h2>\u0412\u043e\u0441\u044c\u043c\u0430\u044f \u0437\u0430\u0434\u0430\u0447\u0430<\/h2>\n<p><strong>\u0423\u0441\u043b\u043e\u0432\u0438\u0435<\/strong><br \/> \u0414\u0430\u043d \u043c\u0430\u0441\u0441\u0438\u0432 <em>arr<\/em> \u0446\u0435\u043b\u044b\u0445 \u0447\u0438\u0441\u0435\u043b \u0440\u0430\u0437\u043c\u0435\u0440\u043e\u043c <em>n<\/em>. \u041d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0443\u0434\u0430\u043b\u0438\u0442\u044c \u0438\u0437 \u043d\u0435\u0433\u043e \u043c\u0438\u043d\u0438\u043c\u0430\u043b\u044c\u043d\u043e\u0435 \u0447\u0438\u0441\u043b\u043e \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432 \u0442\u0430\u043a, \u0447\u0442\u043e\u0431\u044b \u043e\u0441\u0442\u0430\u0432\u0448\u0438\u0435\u0441\u044f \u0441\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u043b\u0438 \u0432\u043e\u0437\u0440\u0430\u0441\u0442\u0430\u044e\u0449\u0443\u044e \u043f\u043e\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u044c.<\/p>\n<p><strong>\u041f\u0440\u0438\u043c\u0435\u0440<\/strong>: \u0414\u0430\u043d \u043c\u0430\u0441\u0441\u0438\u0432 <code>6,2,5,4,2,5,6<\/code>, \u0435\u0441\u043b\u0438 \u0443\u0434\u0430\u043b\u0438\u0442\u044c \u0438\u043d\u0434\u0435\u043a\u0441\u044b <code>0, 2, 4<\/code>, \u0442\u043e \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u0441\u044f \u043f\u043e\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u044c <code>2,4,5,6<\/code> &#8212; \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u0432\u043e\u0437\u0440\u0430\u0441\u0442\u0430\u0435\u0442 \u0438 \u0438\u043c\u0435\u0435\u0442 \u043d\u0430\u0438\u0431\u043e\u043b\u044c\u0448\u0443\u044e \u0434\u043b\u0438\u043d\u0443.<\/p>\n<p>\u041a\u0430\u0437\u0430\u043b\u043e\u0441\u044c \u0431\u044b \u043f\u0440\u0438\u0447\u0435\u043c \u0442\u0443\u0442 \u0434\u0435\u0440\u0435\u0432\u043e \u043e\u0442\u0440\u0435\u0437\u043a\u043e\u0432 \u0438\u043b\u0438 \u0434\u0435\u0440\u0435\u0432\u043e \u0424\u0435\u043d\u0432\u0438\u043a\u0430. \u041d\u043e \u0434\u0430\u0432\u0430\u0439\u0442\u0435 \u043f\u043e\u0442\u0438\u0445\u043e\u043d\u044c\u043a\u0443 \u0440\u0430\u0437\u0431\u0435\u0440\u0435\u043c\u0441\u044f \u043a\u0430\u043a \u0442\u0430\u043a\u043e\u0435 \u0431\u044b\u0441\u0442\u0440\u043e (\u0437\u0430 <code>O(nlogn)<\/code>) \u0440\u0435\u0448\u0430\u0442\u044c.<\/p>\n<p><strong>\u0414\u0438\u043d\u0430\u043c\u0438\u0447\u0435\u0441\u043a\u043e\u0435 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435<\/strong>. <code>O(n^2)<\/code><br \/> \u0411\u0443\u0434\u0435\u043c \u0445\u0440\u0430\u043d\u0438\u0442\u044c \u0432 \u043c\u0430\u0441\u0441\u0438\u0432\u0435 <code>d<\/code> \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f, <code>d[i]<\/code> \u0440\u0430\u0432\u0435\u043d \u0434\u043b\u0438\u043d\u0435 \u043d\u0430\u0438\u0431\u043e\u043b\u044c\u0448\u0435\u0439 \u0432\u043e\u0437\u0440\u0430\u0441\u0442\u0430\u044e\u0449\u0435\u0439 \u043f\u043e\u0434\u043f\u043e\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u0438, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u043e\u043a\u0430\u043d\u0447\u0438\u0432\u0430\u0435\u0442\u0441\u044f \u0432 <code>arr[i]<\/code><br \/> \u0414\u043b\u044f \u043f\u0440\u0438\u043c\u0435\u0440\u0430 \u043c\u0430\u0441\u0441\u0438\u0432 <code>d<\/code> \u0431\u0443\u0434\u0435\u0442 \u0440\u0430\u0432\u0435\u043d<br \/> <code>a = 6,2,5,4,2,5,6<\/code><br \/> <code>d = 1,1,2,2,1,3,4<\/code><\/p>\n<p>\u041d\u0430 \u043a\u0430\u0436\u0434\u043e\u0439 \u0438\u0442\u0435\u0440\u0430\u0446\u0438\u0438 \u0443 \u043d\u0430\u0441 \u0435\u0441\u0442\u044c \u0432\u044b\u0431\u043e\u0440, \u043b\u0438\u0431\u043e \u043c\u044b \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0435\u043c \u043d\u043e\u0432\u0443\u044e \u043f\u043e\u0434\u043f\u043e\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u044c, \u043b\u0438\u0431\u043e \u043f\u0440\u0438\u0441\u043e\u0435\u0434\u0438\u043d\u044f\u0435\u043c\u0441\u044f \u043a \u043a\u0430\u043a\u043e\u0439-\u043d\u0438\u0431\u0443\u0434\u044c \u043f\u043e\u0434\u043f\u043e\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u0438 \u0441\u043b\u0435\u0432\u0430. \u0422\u043e \u0435\u0441\u0442\u044c <code>d[i] = max(1, max(d[j]) + 1)<\/code> \u043f\u0440\u0438 \u0443\u0441\u043b\u043e\u0432\u0438\u0438, \u0447\u0442\u043e <code>0 &lt;= j &lt; i<\/code> \u0438 <code>a[j] &lt; a[i]<\/code><\/p>\n<p>\u0422\u0430\u043a \u043a\u0430\u043a \u043f\u043e\u0434\u043f\u043e\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u044c \u043d\u0435\u043e\u0431\u044f\u0437\u0430\u0442\u0435\u043b\u044c\u043d\u043e \u0437\u0430\u043a\u0430\u043d\u0447\u0438\u0432\u0430\u0435\u0442\u0441\u044f \u0432 \u043a\u043e\u043d\u0446\u0435, \u0442\u043e \u043e\u0442\u0432\u0435\u0442\u043e\u043c \u0431\u0443\u0434\u0435\u0442 <code>max(d)<\/code><\/p>\n<pre><code class=\"cpp\">int a[100000]; int d[100000];  int main() {     for (int i = 0; i &lt; n; i++) {         d[i] = 1;         for (int j = 0; j &lt; i; j++) {             if (a[j] &lt; a[i]) {                 d[i] = max(d[i], d[j] + 1);             }         }     }     int ans = *max_element(d, d + n); } <\/code><\/pre>\n<p>\u041d\u0435\u0442\u0440\u0443\u0434\u043d\u043e \u0437\u0430\u043c\u0435\u0442\u0438\u0442\u044c, \u0447\u0442\u043e \u0442\u0430\u043a\u043e\u0435 \u0440\u0435\u0448\u0435\u043d\u0438\u0435 \u0431\u0443\u0434\u0435\u0442 \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u0437\u0430 <code>O(n^2)<\/code><\/p>\n<p>\u0412\u043e\u0442 \u0431\u044b \u043c\u043e\u0436\u043d\u043e \u0431\u044b\u043b\u043e \u0438\u0441\u043a\u0430\u0442\u044c \u043c\u0430\u043a\u0441\u0438\u043c\u0443\u043c \u043d\u0430 \u043f\u0440\u0435\u0444\u0438\u043a\u0441\u0435 \u0437\u0430 <code>O(logn)<\/code>. \u0421\u0442\u043e\u043f, \u044d\u0442\u043e \u0436\u0435 \u0438 \u0435\u0441\u0442\u044c \u0441\u0435\u0434\u044c\u043c\u0430\u044f \u0437\u0430\u0434\u0430\u0447\u0430, \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u0442\u0441\u044f \u043c\u043e\u0436\u043d\u043e <strong>\u043e\u0431\u044a\u0435\u0434\u0438\u043d\u0438\u0442\u044c \u0434\u0438\u043d\u0430\u043c\u0438\u0447\u0435\u0441\u043a\u043e\u0435 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u0438 \u0434\u0435\u0440\u0435\u0432\u043e \u0424\u0435\u043d\u0432\u0438\u043a\u0430<\/strong><\/p>\n<pre><code class=\"cpp\">class fenwick {   public:     explicit fenwick() {       f.resize(1000001, 0);     }        int mx(int i) {       int res = INT_MIN;       for (; i >= 0; i = (i &amp; (i + 1)) - 1) {         res = max(res, f[i]);       }       return res;     }        void set(int i, int v) {       for (; i &lt; 100000; i |= i + 1) {         f[i] = max(f[i], v);       }     }      private:     vector&lt;int> f;   };      int main() {     ios::sync_with_stdio(false);     cin.tie(nullptr);     cout.tie(nullptr);     int n;     cin >> n;     vector&lt;int> arr(n);     for (int i = 0; i &lt; n; ++i) cin >> arr[i];        fenwick tree;     for (int i = 0; i &lt; n; ++i) {       int q = tree.mx(arr[i]);       tree.set(arr[i], q + 1);     }     cout &lt;&lt; tree.mx(100000);     return 0;   } <\/code><\/pre>\n<p>\u0415\u0441\u043b\u0438 \u044d\u043b\u0435\u043c\u0435\u043d\u0442 \u0432 \u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b\u044c\u043d\u043e\u043c \u043c\u0430\u0441\u0441\u0438\u0432\u0435 <code>&lt;= 10^6<\/code>, \u0442\u043e \u043c\u043e\u0436\u043d\u043e \u0440\u0435\u0448\u0430\u0442\u044c \u0431\u0435\u0437 \u043f\u0440\u043e\u0431\u043b\u0435\u043c, \u0438\u043d\u0430\u0447\u0435 \u043d\u0443\u0436\u043d\u043e \u0431\u0443\u0434\u0435\u0442 \u0441\u0436\u0430\u0442\u044c \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f.<br \/> \u0427\u0442\u043e \u0437\u043d\u0430\u0447\u0438\u0442 <strong>\u0441\u0436\u0430\u0442\u044c \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435<\/strong>. \u0414\u043e\u043f\u0443\u0441\u0442\u0438\u043c \u043d\u0430\u043c \u0434\u0430\u043d \u043c\u0430\u0441\u0441\u0438\u0432 \u0434\u043b\u0438\u043d\u043e\u0439 <code>10^6<\/code>, \u043d\u043e \u043f\u0440\u0438 \u044d\u0442\u043e\u043c \u0441\u0430\u043c\u0438 \u0447\u0438\u0441\u043b\u0430 \u0432 \u043c\u0430\u0441\u0441\u0438\u0432\u0435 \u043c\u043e\u0433\u0443\u0442 \u0431\u044b\u0442\u044c \u043e\u0442 <code>-10^9<\/code> \u0434\u043e <code>10^9<\/code>. \u0422\u043e \u0435\u0441\u0442\u044c \u0432 \u0446\u0435\u043b\u043e\u043c \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0438\u043c\u0435\u0435\u0442 <code>10^18<\/code> \u0432\u0430\u0440\u0438\u0430\u043d\u0442\u043e\u0432 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439, \u0447\u0442\u043e \u0443\u0436\u0435 \u043d\u0435 \u043f\u043e\u0434\u0445\u043e\u0434\u0438\u0442 \u0434\u043b\u044f \u0434\u0435\u0440\u0435\u0432\u0430 \u0424\u0435\u043d\u0432\u0438\u043a\u0430. \u041f\u043e\u044d\u0442\u043e\u043c\u0443 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u043d\u0443\u0436\u043d\u043e \u0441\u0436\u0430\u0442\u044c. \u041a\u0430\u043a \u044d\u0442\u043e \u043c\u043e\u0436\u043d\u043e \u0441\u0434\u0435\u043b\u0430\u0442\u044c. \u0422\u0430\u043a \u043a\u0430\u043a \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432 \u0443 \u043d\u0430\u0441 \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u043e, \u0442\u043e \u043c\u044b \u043c\u043e\u0436\u0435\u043c \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0438\u0442\u044c \u0431\u0438\u0435\u043a\u0446\u0438\u044e \u043c\u0435\u0436\u0434\u0443 \u0440\u0435\u0430\u043b\u044c\u043d\u044b\u043c \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432 \u0438 \u0435\u0433\u043e \u0438\u043d\u0434\u0435\u043a\u0441\u043e\u043c. \u041f\u0440\u0438\u0447\u0435\u043c \u0434\u0432\u0430 \u043e\u0434\u0438\u043d\u0430\u043a\u043e\u0432\u044b\u0445 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u0430 \u0434\u043e\u043b\u0436\u043d\u044b \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0442\u044c \u043e\u0434\u0438\u043d \u0438 \u0442\u043e\u0442 \u0438\u043d\u0434\u0435\u043a\u0441. \u0422\u0430\u043a\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c \u0434\u0430\u0436\u0435 \u0432 \u0445\u0443\u0434\u0448\u0435\u043c \u0441\u043b\u0443\u0447\u0430\u0435, \u043a\u043e\u0433\u0434\u0430 \u0432\u0441\u0435 \u0447\u0438\u0441\u043b\u0430 \u0443\u043d\u0438\u043a\u0430\u043b\u044c\u043d\u044b, \u0442\u043e \u043f\u043e\u043b\u0443\u0447\u0438\u0432\u0448\u0438\u0435\u0441\u044f \u0438\u043d\u0434\u0435\u043a\u0441\u044b \u043d\u0435 \u043f\u0440\u0435\u0432\u044b\u0441\u044f\u0442 <code>10^6<\/code>, \u0447\u0442\u043e \u043f\u043e\u0434\u0445\u043e\u0434\u0438\u0442 \u0434\u043b\u044f \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f \u0432 \u0414\u0435\u0440\u0435\u0432\u0435 \u0424\u0435\u043d\u0432\u0438\u043a\u0430.<\/p>\n<p>\u0415\u0449\u0435 \u0440\u0430\u0437, \u0442\u0435\u043f\u0435\u0440\u044c \u043d\u0430\u0448 \u0438\u043d\u0434\u0435\u043a\u0441 \u0432 \u0434\u0435\u0440\u0435\u0432\u0435 \u0424\u0435\u043d\u0432\u0438\u043a\u0430 &#8212; \u044d\u0442\u043e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435. \u041c\u044b \u043c\u043e\u0436\u0435\u043c \u0431\u044b\u0441\u0442\u0440\u043e \u043d\u0430\u0439\u0442\u0438 \u043c\u0430\u043a\u0441\u0438\u043c\u0443\u043c \u0432 \u043e\u0442\u0440\u0435\u0437\u043a\u0435 \u043e\u0442 <code>0<\/code> \u0434\u043e <code>i<\/code>. \u0411\u043e\u043b\u0435\u0435 \u043d\u0430\u0433\u043b\u044f\u0434\u043d\u043e (<code>d<\/code> &#8212; \u044d\u0442\u043e \u043e\u0431\u044b\u0447\u043d\u043e\u0435 \u0434\u0438\u043d\u0430\u043c\u0438\u0447\u0435\u0441\u043a\u043e\u0435 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435):<br \/> <code>a = 6,2,5,4,2,5,6<\/code><br \/> <code>d = 1,1,2,2,1,3,4<\/code><br \/> <code>f = 0,0,1,0,2,3,4,0,0....<\/code><\/p>\n<p>\u041c\u044b \u043f\u0440\u043e\u0431\u0435\u0433\u0430\u0435\u043c\u0441\u044f \u043f\u043e \u0432\u0441\u0435\u043c \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u0430\u043c \u043c\u0430\u0441\u0441\u0438\u0432\u0430 \u0438 \u0434\u0435\u043b\u0430\u0435\u043c \u0434\u0432\u0435 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0438:<\/p>\n<ul>\n<li>\n<p>\u041d\u0430\u0445\u043e\u0434\u0438\u043c \u043c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u043e\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435, \u043a\u043e\u0442\u043e\u0440\u043e\u0435 \u0431\u044b\u043b\u043e \u0434\u043e \u044d\u0442\u043e\u0433\u043e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f<\/p>\n<\/li>\n<li>\n<p>\u041c\u0435\u043d\u044f\u0435\u043c \u0442\u0435\u043a\u0443\u0449\u0435\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u043d\u0430 \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u043d\u043e\u0435 \u043c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u043e\u0435 + 1<\/p>\n<\/li>\n<\/ul>\n<figure class=\"\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w780q1\/getpro\/habr\/post_images\/4e1\/a12\/ba4\/4e1a12ba49be37da4bc571c0cbfc6641.jpg\" alt=\"\u041e\u0440\u0430\u043d\u0436\u0435\u0432\u044b\u0435 \u043f\u043e\u043b\u043e\u0441\u043a\u0438, \u044d\u0442\u043e \u043e\u0442\u0440\u0435\u0437\u043e\u043a \u043d\u0430 \u043a\u043e\u0442\u043e\u0440\u043e\u043c \u0438\u0449\u0435\u0442\u0441\u044f \u043c\u0430\u043a\u0441\u0438\u043c\u0443\u043c\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/post_images\/4e1\/a12\/ba4\/4e1a12ba49be37da4bc571c0cbfc6641.jpg\" data-blurred=\"true\"\/><\/p>\n<div><figcaption>\u041e\u0440\u0430\u043d\u0436\u0435\u0432\u044b\u0435 \u043f\u043e\u043b\u043e\u0441\u043a\u0438, \u044d\u0442\u043e \u043e\u0442\u0440\u0435\u0437\u043e\u043a \u043d\u0430 \u043a\u043e\u0442\u043e\u0440\u043e\u043c \u0438\u0449\u0435\u0442\u0441\u044f \u043c\u0430\u043a\u0441\u0438\u043c\u0443\u043c<\/figcaption><\/div>\n<\/figure>\n<p><strong>\u0412\u0430\u0436\u043d\u0430\u044f \u0440\u0435\u043c\u0430\u0440\u043a\u0430<\/strong>, \u043d\u0430 \u0434\u0435\u043b\u0435 \u043c\u0430\u0441\u0441\u0438\u0432 \u0434\u0435\u0440\u0435\u0432\u0430 \u0424\u0435\u043d\u0432\u0438\u043a\u0430 \u0432\u044b\u0433\u043b\u044f\u0434\u0438\u0442 \u043f\u043e-\u0434\u0440\u0443\u0433\u043e\u043c\u0443, \u043f\u043e\u0442\u043e\u043c\u0443 \u0447\u0442\u043e \u0438\u0437\u043c\u0435\u043d\u044f\u0435\u0442\u0441\u044f \u043d\u0435 \u0442\u043e\u043b\u044c\u043a\u043e \u043e\u0434\u0438\u043d \u0438\u043d\u0434\u0435\u043a\u0441, \u043d\u043e \u0438 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0441\u0432\u044f\u0437\u0430\u043d\u043d\u044b\u0445 \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u0444\u0443\u043d\u043a\u0446\u0438\u0438 <code>p(i)<\/code> \u0438\u043d\u0434\u0435\u043a\u0441\u043e\u0432, \u043d\u043e \u0434\u043b\u044f \u0443\u043f\u0440\u043e\u0449\u0435\u043d\u0438\u044f \u044f \u043d\u0430\u0440\u0438\u0441\u043e\u0432\u0430\u043b \u0442\u0430\u043a\u043e\u0439 \u0432\u0430\u0440\u0438\u0430\u043d\u0442.<\/p>\n<h2>\u0414\u0435\u0432\u044f\u0442\u0430\u044f \u0437\u0430\u0434\u0430\u0447\u0430<\/h2>\n<p><strong>\u041e\u0440\u0438\u0433\u0438\u043d\u0430\u043b\u044c\u043d\u043e\u0435 \u0443\u0441\u043b\u043e\u0432\u0438\u0435<\/strong><br \/> \u0417\u0430\u0434\u0430\u043d\u0430 \u043f\u043e\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u044c \u0438\u0437 <code>n<\/code> \u0447\u0438\u0441\u0435\u043b. \u041d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u043d\u0430\u0439\u0442\u0438 \u0447\u0438\u0441\u043b\u043e \u0432\u043e\u0437\u0440\u0430\u0441\u0442\u0430\u044e\u0449\u0438\u0445 \u043f\u043e\u0434\u043f\u043e\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u0435\u0439 \u043d\u0430\u0438\u0431\u043e\u043b\u044c\u0448\u0435\u0439 \u0434\u043b\u0438\u043d\u044b \u0437\u0430\u0434\u0430\u043d\u043d\u043e\u0439 \u043f\u043e\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u0438 <code>a1, . . . , an<\/code>. \u0422\u0430\u043a \u043a\u0430\u043a \u044d\u0442\u043e \u0447\u0438\u0441\u043b\u043e \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u0431\u043e\u043b\u044c\u0448\u0438\u043c, \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u043d\u0430\u0439\u0442\u0438 \u043e\u0441\u0442\u0430\u0442\u043e\u043a \u043e\u0442 \u0435\u0433\u043e \u0434\u0435\u043b\u0435\u043d\u0438\u044f \u043d\u0430 10^9 + 7.<\/p>\n<p>\u0422\u0430\u043a\u043e\u0435 \u0436\u0435 \u0437\u0430\u0434\u0430\u043d\u0438\u0435 \u043c\u043e\u0436\u043d\u043e \u043d\u0430\u0439\u0442\u0438 \u0438 \u043d\u0430 <a href=\"https:\/\/leetcode.com\/problems\/number-of-longest-increasing-subsequence\/description\/\" rel=\"noopener noreferrer nofollow\">LeetCode \u043f\u043e\u0434 \u043d\u043e\u043c\u0435\u0440\u043e\u043c 673<\/a><\/p>\n<p>\u0420\u0435\u0448\u0435\u043d\u0438\u0435 \u0430\u043d\u0430\u043b\u043e\u0433\u0438\u0447\u043d\u043e\u043c\u0443 \u0432\u043e\u0441\u044c\u043c\u043e\u0439 \u0437\u0430\u0434\u0430\u0447\u0438, \u043d\u043e \u043c\u044b \u0431\u0443\u0434\u0435\u043c \u0445\u0440\u0430\u043d\u0438\u0442\u044c \u043d\u0435 \u0442\u043e\u043b\u044c\u043a\u043e \u0434\u043b\u0438\u043d\u0443, \u043d\u043e \u0438 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0432\u043e\u0437\u0440\u0430\u0441\u0442\u0430\u044e\u0449\u0438\u0445 \u043f\u043e\u0434\u043f\u043e\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u0435\u0439.<\/p>\n<p>\u041f\u043e\u043b\u043d\u043e\u0435 \u0440\u0435\u0448\u0435\u043d\u0438\u0435 \u043c\u043e\u0436\u043d\u043e \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c \u043d\u0430 <a href=\"https:\/\/github.com\/lld4n\/leetcode\/blob\/master\/%D0%B4%D1%80%D1%83%D0%B3%D0%BE%D0%B5\/%D1%82%D0%B8%D0%BD%D1%8C%D0%BA%D0%BE%D1%84%D1%84.%D0%B0%D0%B8%D1%81%D0%B4\/8\/E.cpp\" rel=\"noopener noreferrer nofollow\">GitHub<\/a><\/p>\n<p>\u0417\u0434\u0435\u0441\u044c \u043c\u044b, \u043a\u0441\u0442\u0430\u0442\u0438, \u0441\u0436\u0438\u043c\u0430\u0435\u043c \u0447\u0438\u0441\u043b\u0430, \u0442\u0430\u043a \u043a\u0430\u043a \u0434\u0435\u0440\u0435\u0432\u043e \u0444\u0435\u043d\u0432\u0438\u043a\u0430 \u043d\u0435 \u0443\u043c\u0435\u0435\u0442 \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u0441 \u043e\u0442\u0440\u0438\u0446\u0430\u0442\u0435\u043b\u044c\u043d\u044b\u043c\u0438 \u0438\u043d\u0434\u0435\u043a\u0441\u0430\u043c\u0438.<\/p>\n<h2>\u0414\u0435\u0441\u044f\u0442\u0430\u044f \u0437\u0430\u0434\u0430\u0447\u0430<\/h2>\n<p><strong>\u0423\u0441\u043b\u043e\u0432\u0438\u0435<\/strong><br \/> \u0414\u0430\u043d \u043c\u0430\u0441\u0441\u0438\u0432 \u0438\u0437 <em>n<\/em> \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432. \u0422\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044f \u043d\u0430\u0439\u0442\u0438 \u0432 \u043d\u0451\u043c \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0438\u043d\u0432\u0435\u0440\u0441\u0438\u0439. \u0418\u043d\u0432\u0435\u0440\u0441\u0438\u044f \u044d\u0442\u043e \u0442\u0430\u043a\u0438\u0435 \u0438\u043d\u0434\u0435\u043a\u0441\u044b <code>i<\/code> \u0438 <code>j<\/code>, \u0447\u0442\u043e <code>i &lt; j<\/code> \u0438 <code>arr[i] > arr[j]<\/code><\/p>\n<p>\u0414\u043b\u044f \u0440\u0435\u0448\u0435\u043d\u0438\u044f \u044d\u0442\u043e\u0433\u043e \u0437\u0430\u0434\u0430\u043d\u0438\u044f \u0432\u043e\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c\u0441\u044f \u0434\u0435\u0440\u0435\u0432\u043e\u043c \u0444\u0435\u043d\u0432\u0438\u043a\u0430 \u043d\u0430 \u0441\u0443\u043c\u043c\u0443. \u041f\u0440\u0438 \u043a\u0430\u0436\u0434\u043e\u0439 \u0438\u0442\u0435\u0440\u0430\u0446\u0438\u0438 \u043c\u044b \u0431\u0443\u0434\u0435\u043c \u043f\u043e\u043b\u0443\u0447\u0430\u0442\u044c \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432 (\u0441\u0443\u043c\u043c\u0430), \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043d\u0430\u0445\u043e\u0434\u044f\u0442\u0441\u044f \u043f\u0440\u0430\u0432\u0435\u0435 \u043e\u0442 \u0442\u0435\u043a\u0443\u0449\u0435\u0433\u043e \u0447\u0438\u0441\u043b\u0430. \u041a\u0430\u043a \u044d\u0442\u043e \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442?<\/p>\n<p>\u0412 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043d\u044b\u0439 \u043c\u043e\u043c\u0435\u043d\u0442 \u0432\u0440\u0435\u043c\u0435\u043d\u0438 (\u043f\u0440\u0438 \u0438\u043d\u0434\u0435\u043a\u0441\u0435 <code>j<\/code>) \u0443 \u043d\u0430\u0441 \u0432 \u0434\u0435\u0440\u0435\u0432\u0435 \u0431\u044b\u043b\u0438 \u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u044b \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u044b \u0443 \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u0438\u043d\u0434\u0435\u043a\u0441 \u043c\u0435\u043d\u044c\u0448\u0435, \u0447\u0435\u043c <code>j<\/code>. \u041e\u0441\u0442\u0430\u0435\u0442\u0441\u044f \u0442\u043e\u043b\u044c\u043a\u043e \u043d\u0430\u0439\u0442\u0438 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0431\u043e\u043b\u044c\u0448\u0435 <code>arr[j]<\/code>. \u0418\u043c\u0435\u043d\u043d\u043e \u044d\u0442\u043e \u0438 \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u043e \u0432 \u0443\u0441\u043b\u043e\u0432\u0438\u0435 \u0437\u0430\u0434\u0430\u0447\u0438.<\/p>\n<p>\u041a\u043e\u0434 \u0432\u044b\u0433\u043b\u044f\u0434\u0438\u0442 \u043f\u0440\u0438\u043c\u0435\u0440\u043d\u043e \u0442\u0430\u043a, \u043d\u043e \u0442\u0443\u0442 <strong>\u0432\u0430\u0436\u043d\u043e<\/strong>, \u0447\u0442\u043e \u0435\u0441\u043b\u0438 \u0447\u0438\u0441\u043b\u0430 \u043f\u0440\u0435\u0432\u044b\u0448\u0430\u044e\u0442 <code>10^6<\/code> \u0438\u0445 \u043d\u0443\u0436\u043d\u043e \u0431\u0443\u0434\u0435\u0442 \u0441\u0436\u0430\u0442\u044c.<\/p>\n<pre><code class=\"cpp\">class fenwick {   public:     vector&lt;int> f;        explicit fenwick() {       f.resize(1000001, 0);     }        int sm(int x) {       int result = 0;       for (; x >= 0; x = (x &amp; (x + 1)) - 1) {         result += f[x];       }       return result;     }        int sum(int l, int r) {       if (l) return sm(r) - sm(l - 1);       else return sm(r);     }        void inc(int i) {       for (; i &lt; 1000001; i |= i + 1) {         f[i]++;       }     }      };      int main() {     int n;     cin >> n;     vector&lt;int> arr(n);     for (int i = 0; i &lt; n; ++i) cin >> arr[i];        fenwick tree;     int ans = 0;     for (int i : arr) {       auto q = tree.sum(i + 1, 1000000);       ans += q;       tree.inc(i);     }     cout &lt;&lt; ans;     return 0;   } <\/code><\/pre>\n<h2>\u041e\u0434\u0438\u043d\u043d\u0430\u0434\u0446\u0430\u0442\u0430\u044f \u0437\u0430\u0434\u0430\u0447\u0430<\/h2>\n<p><strong>\u041e\u0440\u0438\u0433\u0438\u043d\u0430\u043b\u044c\u043d\u043e\u0435 \u0443\u0441\u043b\u043e\u0432\u0438\u0435<\/strong><br \/> \u0420\u0438\u043c\u043b\u044f\u043d\u0435 \u0441\u043d\u043e\u0432\u0430 \u043d\u0430\u0441\u0442\u0443\u043f\u0430\u044e\u0442. \u041d\u0430 \u044d\u0442\u043e\u0442 \u0440\u0430\u0437 \u0438\u0445 \u0433\u043e\u0440\u0430\u0437\u0434\u043e \u0431\u043e\u043b\u044c\u0448\u0435, \u0447\u0435\u043c \u043f\u0435\u0440\u0441\u043e\u0432, \u043d\u043e \u0428\u0430\u043f\u0443\u0440 \u0433\u043e\u0442\u043e\u0432 \u043f\u043e\u0431\u0435\u0434\u0438\u0442\u044c \u0438\u0445. \u041e\u043d \u0433\u043e\u0432\u043e\u0440\u0438\u0442: \u00ab\u041b\u0435\u0432 \u043d\u0438\u043a\u043e\u0433\u0434\u0430 \u043d\u0435 \u0438\u0441\u043f\u0443\u0433\u0430\u0435\u0442\u0441\u044f \u0441\u043e\u0442\u043d\u0438 \u043e\u0432\u0435\u0446\u00bb.<br \/> \u041d\u0435 \u0441\u043c\u043e\u0442\u0440\u044f \u043d\u0430 \u044d\u0442\u043e, \u0428\u0430\u043f\u0443\u0440 \u0434\u043e\u043b\u0436\u0435\u043d \u043d\u0430\u0439\u0442\u0438 \u0441\u043b\u0430\u0431\u043e\u0441\u0442\u044c \u0440\u0438\u043c\u0441\u043a\u043e\u0439 \u0430\u0440\u043c\u0438\u0438, \u0447\u0442\u043e\u0431\u044b \u043f\u043e\u0431\u0435\u0434\u0438\u0442\u044c \u0435\u0435. \u041a\u0430\u043a \u0432\u044b \u043f\u043e\u043c\u043d\u0438\u0442\u0435, \u0428\u0430\u043f\u0443\u0440 \u2013 \u043c\u0430\u0442\u0435\u043c\u0430\u0442\u0438\u043a, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u043e\u043d \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0435\u0442, \u043d\u0430\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0441\u043b\u0430\u0431\u0430 \u0430\u0440\u043c\u0438\u044f, \u043a\u0430\u043a \u0447\u0438\u0441\u043b\u043e \u2013 \u0441\u0442\u0435\u043f\u0435\u043d\u044c \u0441\u043b\u0430\u0431\u043e\u0441\u0442\u0438.<br \/> \u0428\u0430\u043f\u0443\u0440 \u0441\u0447\u0438\u0442\u0430\u0435\u0442, \u0447\u0442\u043e \u0441\u0442\u0435\u043f\u0435\u043d\u044c \u0441\u043b\u0430\u0431\u043e\u0441\u0442\u0438 \u0430\u0440\u043c\u0438\u0438 \u0440\u0430\u0432\u043d\u0430 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u0443 \u0442\u0430\u043a\u0438\u0445 \u0442\u0440\u043e\u0435\u043a <code>i, j, k<\/code>, \u0447\u0442\u043e <code>i &lt; j &lt; k<\/code> \u0438 <code>a[i] > a[j]> a[k]<\/code>, \u0433\u0434\u0435 <code>a[x]<\/code> \u2013 \u0441\u0438\u043b\u0430 \u0447\u0435\u043b\u043e\u0432\u0435\u043a\u0430, \u0441\u0442\u043e\u044f\u0449\u0435\u0433\u043e \u0432 \u0441\u0442\u0440\u043e\u044e \u043d\u0430 \u043c\u0435\u0441\u0442\u0435 \u0441 \u043d\u043e\u043c\u0435\u0440\u043e\u043c x.<br \/> \u041f\u043e\u043c\u043e\u0433\u0438\u0442\u0435 \u0428\u0430\u043f\u0443\u0440\u0443 \u0443\u0437\u043d\u0430\u0442\u044c, \u043d\u0430\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0441\u043b\u0430\u0431\u0430 \u0430\u0440\u043c\u0438\u044f \u0440\u0438\u043c\u043b\u044f\u043d.<\/p>\n<p><strong>\u041f\u0435\u0440\u0435\u0444\u043e\u0440\u043c\u0443\u043b\u0438\u0440\u043e\u0432\u043a\u0430<\/strong><br \/> \u0414\u0430\u043d \u043c\u0430\u0441\u0441\u0438\u0432 \u0446\u0435\u043b\u044b\u0445 \u0447\u0438\u0441\u0435\u043b \u0440\u0430\u0437\u043c\u0435\u0440\u043e\u043c <em>n<\/em>. \u041d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u043d\u0430\u0439\u0442\u0438 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0442\u0440\u043e\u0435\u043a \u0438\u043d\u0434\u0435\u043a\u0441\u043e\u0432 <code>i, j, k<\/code>, \u0442\u0430\u043a\u0438\u0445, \u0447\u0442\u043e <code>i &lt; j &lt; k<\/code> \u0438 <code>a[i] > a[j]> a[k]<\/code><\/p>\n<p><strong>\u041e\u0431\u043e\u0431\u0449\u0435\u043d\u0438\u0435<\/strong><br \/> \u0414\u0430\u043d \u043c\u0430\u0441\u0441\u0438\u0432 \u0446\u0435\u043b\u044b\u0445 \u0447\u0438\u0441\u0435\u043b \u0440\u0430\u0437\u043c\u0435\u0440\u043e\u043c <em>n<\/em>. \u041d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u043d\u0430\u0439\u0442\u0438 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0441\u0443\u043f\u0435\u0440\u0438\u043d\u0432\u0435\u0440\u0441\u0438\u0439 \u0440\u0430\u0437\u043c\u0435\u0440\u0430 <em>k<\/em>. \u0422\u043e \u0435\u0441\u0442\u044c \u0442\u043e \u0436\u0435 \u0441\u0430\u043c\u043e\u0435, \u0447\u0442\u043e \u0438 \u0441 \u0442\u0440\u043e\u0439\u043a\u0430\u043c\u0438, \u043d\u043e \u0432\u043c\u0435\u0441\u0442\u043e \u0442\u0440\u0435\u0445 \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c <code>k<\/code><\/p>\n<p>\u0417\u0430\u0434\u0430\u0447\u0430 \u043e\u0447\u0435\u043d\u044c \u043f\u043e\u0445\u043e\u0436\u0430 \u043d\u0430 \u0434\u0435\u0441\u044f\u0442\u0443\u044e \u0437\u0430\u0434\u0430\u0447\u0443. \u0418\u0434\u0435\u044f \u0432 \u0442\u043e\u043c, \u0447\u0442\u043e \u0435\u0441\u043b\u0438 \u043c\u044b \u0437\u043d\u0430\u0435\u043c \u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0434\u0432\u0443\u0445-\u0438\u043d\u0432\u0435\u0440\u0441\u0438\u0439 \u0431\u044b\u043b\u043e \u043f\u0440\u0430\u0432\u0435\u0435 \u0442\u0435\u043a\u0443\u0449\u0435\u0433\u043e \u0447\u0438\u0441\u043b\u0430, \u0442\u043e \u043c\u044b \u043c\u043e\u0436\u0435\u043c \u0443\u0437\u043d\u0430\u0442\u044c \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0442\u0440\u0435\u0445-\u0438\u043d\u0432\u0435\u0440\u0441\u0438\u0439. \u0421 \u0442\u043e\u0447\u043a\u0438 \u0437\u0440\u0435\u043d\u0438\u044f \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 \u044d\u0442\u043e \u0431\u0443\u0434\u0435\u0442 \u0432\u044b\u0433\u043b\u044f\u0434\u0435\u0442\u044c \u0442\u0430\u043a:<br \/> <code>a   = 6 4 5 1<\/code><br \/> <code>2_i = 0 1 1 3<\/code><br \/> <code>3_i = 0 0 0 2<\/code><br \/> \u0433\u0434\u0435 <code>2_i<\/code> &#8212; \u044d\u0442\u043e \u043c\u0430\u0441\u0441\u0438\u0432, \u0433\u0434\u0435 <code>2_i[j]<\/code> &#8212; \u044d\u0442\u043e \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0434\u0432\u0443\u0445-\u0438\u043d\u0432\u0435\u0440\u0441\u0438\u0439, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043e\u043a\u0430\u043d\u0447\u0438\u0432\u0430\u044e\u0442\u0441\u044f \u0432 \u044d\u0442\u043e\u043c \u0438\u043d\u0434\u0435\u043a\u0441\u0435. <code>3_i<\/code> \u0430\u043d\u0430\u043b\u043e\u0433\u0438\u0447\u043d\u043e, \u043d\u043e \u0443\u0436\u0435 \u0442\u0440\u0435\u0445-\u0438\u043d\u0432\u0435\u0440\u0441\u0438\u0439.<\/p>\n<p>\u041c\u0430\u0441\u0441\u0438\u0432 <code>3_i<\/code> \u0441\u0442\u0440\u043e\u0438\u0442\u0441\u044f \u043d\u0430 \u043e\u0441\u043d\u043e\u0432\u0435 <code>2_i<\/code>, <code>2_i<\/code> \u0441\u0442\u0440\u043e\u0438\u0442\u0441\u044f \u043d\u0430 \u043e\u0441\u043d\u043e\u0432\u0435 <code>a<\/code>.  \u041f\u043e \u0441\u0443\u0442\u0438 \u043d\u0430 \u043a\u0430\u0436\u0434\u043e\u0439 \u0438\u0442\u0435\u0440\u0430\u0446\u0438\u0438 \u0432 \u043a\u0430\u0436\u0434\u043e\u043c \u043c\u0430\u0441\u0441\u0438\u0432\u0435 \u043c\u044b \u0438\u0449\u0435\u043c \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u044f\u0432\u043b\u044f\u044e\u0442\u0441\u044f \u0431\u043e\u043b\u044c\u0448\u0435 \u0442\u0435\u043a\u0443\u0449\u0435\u0433\u043e. \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440 <code>2_i[3]<\/code> &#8212; \u044d\u0442\u043e \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0431\u043e\u043b\u044c\u0448\u0435 <code>a[3]<\/code>, \u043d\u043e \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043d\u0430\u0445\u043e\u0434\u044f\u0442\u0441\u044f \u043b\u0435\u0432\u0435\u0435 <code>3<\/code> \u043f\u043e \u0438\u043d\u0434\u0435\u043a\u0441\u0443. \u0410 <code>3_i[3]<\/code> &#8212; \u044d\u0442\u043e \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0431\u043e\u043b\u044c\u0448\u0435 <code>a[3]<\/code> \u0438 \u0443 \u043a\u043e\u0442\u043e\u0440\u044b\u0445 <code>2_i[j]<\/code> \u0431\u043e\u043b\u044c\u0448\u0435 \u043d\u0443\u043b\u044f.<\/p>\n<p>\u041f\u043e \u0441\u0443\u0442\u0438 \u043f\u0440\u0438 \u043a\u0430\u0436\u0434\u043e\u0439 \u0438\u0442\u0435\u0440\u0430\u0446\u0438\u0438 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0438\u0441\u043a\u0430\u0442\u044c \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0431\u043e\u043b\u044c\u0448\u0435 <code>a[i]<\/code>. \u0415\u0441\u043b\u0438 \u0440\u0435\u0448\u0430\u0442\u044c \u0447\u0435\u0440\u0435\u0437 \u0434\u0438\u043d\u0430\u043c\u0438\u0447\u0435\u0441\u043a\u043e\u0435 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u0443 \u043d\u0430\u0441 \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u0442\u0441\u044f \u0441\u043b\u043e\u0436\u043d\u043e\u0441\u0442\u044c <code>O(kn^2)<\/code>, \u0442\u0430\u043a \u043a\u0430\u043a \u043c\u044b k \u0440\u0430\u0437 \u0432\u044b\u0447\u0438\u0441\u043b\u044f\u0435\u043c \u0446\u0435\u043b\u044b\u0439 \u043c\u0430\u0441\u0441\u0438\u0432 \u0434\u0438\u043d\u0430\u043c\u0438\u043a\u0438, \u0430 \u043d\u0430 \u043a\u0430\u0436\u0434\u043e\u0439 \u0438\u0442\u0435\u0440\u0430\u0446\u0438\u0438 \u043f\u0440\u043e\u0445\u043e\u0434\u0438\u043c\u0441\u044f \u0441 0 \u0434\u043e <code>i<\/code>. \u042d\u0442\u043e \u043c\u043e\u0436\u043d\u043e \u0440\u0435\u0448\u0438\u0442\u044c \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u0434\u0435\u0440\u0435\u0432\u0430 \u0424\u0435\u043d\u0432\u0438\u043a\u0430 \u0441 \u0430\u043d\u0430\u043b\u043e\u0433\u0438\u0447\u043d\u043e\u0439 \u0434\u0435\u0441\u044f\u0442\u043e\u0439 \u0437\u0430\u0434\u0430\u0447\u0438 \u0438\u0434\u0435\u0435\u0439. \u041f\u0440\u043e\u0441\u0442\u043e \u0432 \u044d\u0442\u043e\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u043d\u0430\u043c \u043d\u0443\u0436\u043d\u043e \u0431\u0443\u0434\u0435\u0442 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u043d\u0435 \u043e\u0434\u043d\u043e \u0434\u0435\u0440\u0435\u0432\u043e, \u0430 k \u0434\u0435\u0440\u0435\u0432\u044c\u0435\u0432.<\/p>\n<p>\u0420\u0435\u0448\u0435\u043d\u0438\u0435 \u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b\u044c\u043d\u043e\u0439 \u0437\u0430\u0434\u0430\u0447\u0438 \u043c\u043e\u0436\u043d\u043e \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c \u043d\u0430 <a href=\"https:\/\/github.com\/lld4n\/leetcode\/blob\/master\/%D0%B4%D1%80%D1%83%D0%B3%D0%BE%D0%B5\/%D1%82%D0%B8%D0%BD%D1%8C%D0%BA%D0%BE%D1%84%D1%84.%D0%B0%D0%B8%D1%81%D0%B4\/8\/F.cpp\" rel=\"noopener noreferrer nofollow\">GitHub<\/a><\/p>\n<h2>\u0414\u0432\u0435\u043d\u0430\u0434\u0446\u0430\u0442\u0430\u044f \u0437\u0430\u0434\u0430\u0447\u0430<\/h2>\n<p><strong>\u0423\u0441\u043b\u043e\u0432\u0438\u0435<\/strong><br \/> \u0414\u0430\u043d \u043c\u0430\u0441\u0441\u0438\u0432 <em>arr<\/em> \u0446\u0435\u043b\u044b\u0445 \u0447\u0438\u0441\u0435\u043b \u0440\u0430\u0437\u043c\u0435\u0440\u043e\u043c <em>n<\/em>. \u041d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0432\u044b\u043f\u043e\u043b\u043d\u0438\u0442\u044c <em>m<\/em> \u0437\u0430\u043f\u0440\u043e\u0441\u043e\u0432. \u041a\u0430\u0436\u0434\u044b\u0439 \u0437\u0430\u043f\u0440\u043e\u0441 \u0432\u044b\u0433\u043b\u044f\u0434\u0438\u0442 \u0442\u0430\u043a:<\/p>\n<ul>\n<li>\n<p><code>min(l,r)<\/code> &#8212; \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u043d\u0430\u0439\u0442\u0438 \u043c\u0438\u043d\u0438\u043c\u0443\u043c \u043d\u0430 \u043e\u0442\u0440\u0435\u0437\u043a\u0435 \u043e\u0442 <code>l<\/code> \u0434\u043e <code>r - 1<\/code> \u0438 \u0432\u0435\u0440\u043d\u0443\u0442\u044c \u0435\u0435. \u0424\u043e\u0440\u043c\u0430\u043b\u044c\u043d\u043e: `min(l,r) = min(a[l], a[l + 1], &#8230;, a[r &#8212; 1])<\/p>\n<\/li>\n<\/ul>\n<p>\u0417\u0430\u043c\u0435\u0442\u044c\u0442\u0435, \u0437\u0434\u0435\u0441\u044c \u043d\u0435\u0442 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0439 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f \u043c\u0430\u0441\u0441\u0438\u0432\u0430. \u0422\u0430\u043a\u0438\u0435 \u0437\u0430\u0434\u0430\u0447\u0438 \u0440\u0435\u0448\u0430\u044e\u0442\u0441\u044f \u0434\u0432\u0443\u043c\u044f \u0447\u0430\u0441\u0442\u044f\u043c\u0438. \u041f\u0435\u0440\u0432\u043e\u0439 &#8212; \u044d\u0442\u043e \u043f\u0440\u0435\u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0438\u043d\u0433, \u043a\u043e\u0433\u0434\u0430 \u0434\u0430\u043d\u043d\u044b\u0435 \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u044c\u043d\u044b\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c \u043f\u043e\u0434\u0433\u043e\u0442\u0430\u0432\u043b\u0438\u0432\u0430\u044e\u0442\u0441\u044f. \u0412\u0442\u043e\u0440\u043e\u0439 &#8212; \u0441\u0430\u043c\u0438 \u043e\u0442\u0432\u0435\u0442\u044b \u043d\u0430 \u0437\u0430\u043f\u0440\u043e\u0441\u044b.<\/p>\n<p>\u0412\u043e\u0437\u043c\u043e\u0436\u043d\u044b\u0435 \u0440\u0435\u0448\u0435\u043d\u0438\u044f:<\/p>\n<ul>\n<li>\n<p>\u0411\u0435\u0437 \u043f\u043e\u0434\u0433\u043e\u0442\u043e\u0432\u043a\u0438 <\/p>\n<ul>\n<li>\n<p>\u0421\u043b\u043e\u0436\u043d\u043e\u0441\u0442\u044c \u043f\u043e\u0434\u0433\u043e\u0442\u043e\u0432\u043a\u0438 &#8212; <code>O(1)<\/code>, \u043d\u0438\u0447\u0435\u0433\u043e \u043d\u0435 \u0434\u0435\u043b\u0430\u0435\u043c<\/p>\n<\/li>\n<li>\n<p>\u0421\u043b\u043e\u0436\u043d\u043e\u0441\u0442\u044c \u0437\u0430\u043f\u0440\u043e\u0441\u0430 &#8212; <code>O(n)<\/code>, \u0432 \u0445\u0443\u0434\u0448\u0435\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u043f\u0440\u043e\u0439\u0434\u0435\u043c\u0441\u044f \u043f\u043e \u0432\u0441\u0435\u043c \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u0430<\/p>\n<\/li>\n<\/ul>\n<\/li>\n<li>\n<p>\u0414\u0435\u0440\u0435\u0432\u043e \u043e\u0442\u0440\u0435\u0437\u043a\u043e\u0432 <\/p>\n<ul>\n<li>\n<p>\u041f\u043e\u0434\u0433\u043e\u0442\u043e\u0432\u043a\u0430 &#8212; <code>O(n)<\/code><\/p>\n<\/li>\n<li>\n<p>\u0417\u0430\u043f\u0440\u043e\u0441 &#8212; <code>O(logn)<\/code><\/p>\n<\/li>\n<\/ul>\n<\/li>\n<li>\n<p>\u041f\u0435\u0440\u0435\u0431\u043e\u0440 \u0432\u0441\u0435\u0445 \u0432\u0430\u0440\u0438\u0430\u043d\u0442\u043e\u0432 <\/p>\n<ul>\n<li>\n<p>\u041f\u043e\u0434\u0433\u043e\u0442\u043e\u0432\u043a\u0430 &#8212; <code>O(n^2)<\/code>, \u043f\u0440\u043e\u0441\u0442\u043e \u043f\u0435\u0440\u0435\u0431\u0435\u0440\u0435\u043c \u0432\u0441\u0435\u0432\u043e\u0437\u043c\u043e\u0436\u043d\u044b\u0435 \u043e\u0442\u0440\u0435\u0437\u043a\u0438 \u0438 \u0432\u044b\u0447\u0438\u0441\u043b\u0438\u043c \u0434\u043b\u044f \u043d\u0438\u0445 \u043c\u0438\u043d\u0438\u043c\u0443\u043c<\/p>\n<\/li>\n<li>\n<p>\u0417\u0430\u043f\u0440\u043e\u0441 &#8212; <code>O(1)<\/code>, \u0432\u0435\u0440\u043d\u0435\u043c \u0437\u0430\u0440\u0430\u043d\u0435\u0435 \u0437\u0430\u0433\u043e\u0442\u043e\u0432\u043b\u0435\u043d\u043d\u044b\u0435 \u0434\u0430\u043d\u043d\u044b\u0435<\/p>\n<\/li>\n<\/ul>\n<\/li>\n<li>\n<p>\u0420\u0430\u0437\u0440\u0435\u0436\u0435\u043d\u043d\u044b\u0435 \u0442\u0430\u0431\u043b\u0438\u0446\u044b <\/p>\n<ul>\n<li>\n<p>\u041f\u043e\u0434\u0433\u043e\u0442\u043e\u0432\u043a\u0430 &#8212; <code>O(nlogn)<\/code><\/p>\n<\/li>\n<li>\n<p>\u0417\u0430\u043f\u0440\u043e\u0441 &#8212; <code>O(1)<\/code><\/p>\n<\/li>\n<\/ul>\n<\/li>\n<li>\n<p><a href=\"https:\/\/neerc.ifmo.ru\/wiki\/index.php?title=%D0%90%D0%BB%D0%B3%D0%BE%D1%80%D0%B8%D1%82%D0%BC_%D0%A4%D0%B0%D1%80%D0%B0%D0%BA%D0%B0-%D0%9A%D0%BE%D0%BB%D1%82%D0%BE%D0%BD%D0%B0_%D0%B8_%D0%91%D0%B5%D0%BD%D0%B4%D0%B5%D1%80%D0%B0\" rel=\"noopener noreferrer nofollow\">\u0410\u043b\u0433\u043e\u0440\u0438\u0442\u043c \u0424\u0430\u0440\u0430\u043a\u0430-\u041a\u043e\u043b\u0442\u043e\u043d\u0430 \u0438 \u0411\u0435\u043d\u0434\u0435\u0440\u0430<\/a> <\/p>\n<ul>\n<li>\n<p>\u041f\u043e\u0434\u0433\u043e\u0442\u043e\u0432\u043a\u0430 &#8212; <code>O(n)<\/code><\/p>\n<\/li>\n<li>\n<p>\u0417\u0430\u043f\u0440\u043e\u0441 &#8212; <code>O(1)<\/code><\/p>\n<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<h2>\u0420\u0430\u0437\u0440\u0435\u0436\u0435\u043d\u043d\u044b\u0435 \u0442\u0430\u0431\u043b\u0438\u0446\u044b<\/h2>\n<p>\u0411\u0443\u0434\u0435\u043c \u0438\u0441\u043a\u0430\u0442\u044c \u043c\u0438\u043d\u0438\u043c\u0443\u043c \u0434\u043b\u044f \u043e\u0442\u0440\u0435\u0437\u043a\u043e\u0432, \u043d\u043e \u043d\u0435 \u0432\u0441\u0435\u0445, \u0430 \u0442\u043e\u043b\u044c\u043a\u043e \u0434\u043b\u044f \u0442\u0435\u0445 \u043e\u0442\u0440\u0435\u0437\u043a\u043e\u0432, \u0443 \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u0434\u043b\u0438\u043d\u0430 &#8212; \u044d\u0442\u043e \u0441\u0442\u0435\u043f\u0435\u043d\u044c \u0434\u0432\u043e\u0439\u043a\u0438. \u0422\u043e \u0435\u0441\u0442\u044c \u0443\u0441\u043b\u043e\u0432\u043d\u043e \u0443 \u043d\u0430\u0441 \u0431\u0443\u0434\u0435\u0442 \u0434\u0432\u0443\u043c\u0435\u0440\u043d\u044b\u0439 \u043c\u0430\u0441\u0441\u0438\u0432 <code>m<\/code>, \u0433\u0434\u0435 <code>m[i][k] = min(a[i...i+2^k-1])<\/code><\/p>\n<p>\u041a\u0430\u043a \u0432\u044b\u0447\u0438\u0441\u043b\u0438\u0442\u044c \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u0434\u043b\u044f \u0442\u0430\u043a\u043e\u0433\u043e \u043c\u0430\u0441\u0441\u0438\u0432\u0430.<\/p>\n<ul>\n<li>\n<p>\u041f\u0440\u0438 <code>k = 0<\/code> \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 <code>m[i][0] = a[i]<\/code><\/p>\n<\/li>\n<li>\n<p>\u041f\u0440\u0438 \u043f\u0435\u0440\u0435\u0445\u043e\u0434\u0435 \u043e\u0442 <code>k<\/code> \u0434\u043e <code>k + 1<\/code>: <code>m[i][k + 1] = min(m[i][k], m[i + 2^k][k])<\/code><\/p>\n<\/li>\n<\/ul>\n<p>\u041a\u0430\u043a \u0442\u0435\u043f\u0435\u0440\u044c \u043d\u0430\u0439\u0442\u0438 \u043c\u0438\u043d\u0438\u043c\u0443\u043c \u043d\u0430 \u043e\u0442\u0440\u0435\u0437\u043a\u0435 <code>[l, r)<\/code>:<br \/> \u0417\u0430\u043c\u0435\u0442\u0438\u043c, \u0447\u0442\u043e \u0443 \u043b\u044e\u0431\u043e\u0433\u043e \u043e\u0442\u0440\u0435\u0437\u043a\u0430 \u0438\u043c\u0435\u0435\u0442\u0441\u044f \u0434\u0432\u0430 \u043e\u0442\u0440\u0435\u0437\u043a\u0430 \u0434\u043b\u0438\u043d\u044b \u0441\u0442\u0435\u043f\u0435\u043d\u0438 \u0434\u0432\u043e\u0439\u043a\u0438, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043f\u0435\u0440\u0435\u0441\u0435\u043a\u0430\u044e\u0442\u0441\u044f, \u0438, \u0433\u043b\u0430\u0432\u043d\u043e\u0435, \u043f\u043e\u043a\u0440\u044b\u0432\u0430\u044e\u0442 \u0435\u0433\u043e \u0438 \u0442\u043e\u043b\u044c\u043a\u043e \u0435\u0433\u043e \u0446\u0435\u043b\u0438\u043a\u043e\u043c. \u0417\u043d\u0430\u0447\u0438\u0442, \u043c\u044b \u043c\u043e\u0436\u0435\u043c \u043f\u0440\u043e\u0441\u0442\u043e \u0432\u0437\u044f\u0442\u044c \u043c\u0438\u043d\u0438\u043c\u0443\u043c \u0438\u0437 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e\u0442 \u044d\u0442\u0438\u043c \u043e\u0442\u0440\u0435\u0437\u043a\u0430\u043c.<\/p>\n<figure class=\"\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/post_images\/dfe\/b3d\/013\/dfeb3d013eb01de6da5034e4809520a8.png\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/post_images\/dfe\/b3d\/013\/dfeb3d013eb01de6da5034e4809520a8.png\"\/><\/figure>\n<p>\u041a\u043e\u0434 \u0432\u044b\u0433\u043b\u044f\u0434\u0438\u0442 \u043f\u0440\u0438\u043c\u0435\u0440\u043d\u043e \u0442\u0430\u043a. \u0417\u0434\u0435\u0441\u044c \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u0444\u0443\u043d\u043a\u0446\u0438\u044f <code>__lg<\/code>, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u043d\u0443\u043b\u0435\u0439 \u0434\u043e \u043f\u0435\u0440\u0432\u043e\u0439 \u0435\u0434\u0438\u043d\u0438\u0446\u044b \u0432 \u0431\u0438\u043d\u0430\u0440\u043d\u043e\u0439 \u0437\u0430\u043f\u0438\u0441\u0438 \u0447\u0438\u0441\u043b\u0430. \u041a\u043e\u0434 \u0432\u0437\u044f\u0442 \u0441 \u0441\u0430\u0439\u0442\u0430 <a href=\"https:\/\/algorithmica.org\/ru\/sparse-table\" rel=\"noopener noreferrer nofollow\">\u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c\u0438\u043a\u0438<\/a><\/p>\n<pre><code class=\"cpp\">int a[maxn], mn[logn][maxn];  int rmq(int l, int r) {      int t = __lg(r - l);     return min(mn[t][l], mn[t][r - (1 &lt;&lt; t)]); }   memcpy(mn[0], a, sizeof a);  for (int l = 0; l &lt; logn - 1; l++)     for (int i = 0; i + (2 &lt;&lt; l) &lt;= n; i++)         mn[l+1][i] = min(mn[l][i], mn[l][i + (1 &lt;&lt; l)]); <\/code><\/pre>\n<h2>\u0422\u0440\u0438\u043d\u0430\u0434\u0446\u0430\u0442\u0430\u044f \u0437\u0430\u0434\u0430\u0447\u0430<\/h2>\n<p>\u0414\u0430\u043d \u043c\u0430\u0441\u0441\u0438\u0432 <em>arr<\/em> \u0446\u0435\u043b\u044b\u0445 \u0447\u0438\u0441\u0435\u043b \u0440\u0430\u0437\u043c\u0435\u0440\u043e\u043c <em>n<\/em>. \u041d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0432\u044b\u043f\u043e\u043b\u043d\u0438\u0442\u044c <em>m<\/em> \u0437\u0430\u043f\u0440\u043e\u0441\u043e\u0432. \u041a\u0430\u0436\u0434\u044b\u0439 \u0437\u0430\u043f\u0440\u043e\u0441 \u0432\u044b\u0433\u043b\u044f\u0434\u0438\u0442 \u0442\u0430\u043a:<\/p>\n<ul>\n<li>\n<p><code>add(l, r, v)<\/code> &#8212; \u043d\u0443\u0436\u043d\u043e \u0434\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u0432\u0441\u0435\u043c \u044d\u043b\u0435\u043c\u0435\u043d\u0442 \u0432 \u043e\u0442\u0440\u0435\u0437\u043a\u0435 \u043e\u0442 <code>l<\/code> \u0434\u043e <code>r - 1<\/code> \u044d\u043b\u0435\u043c\u0435\u043d\u0442 <code>v<\/code><\/p>\n<\/li>\n<li>\n<p><code>get(i)<\/code> &#8212; \u043d\u0443\u0436\u043d\u043e \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c <code>i<\/code> \u044d\u043b\u0435\u043c\u0435\u043d\u0442<\/p>\n<\/li>\n<\/ul>\n<p>\u041f\u043e\u0441\u0442\u0440\u043e\u0438\u043c \u0434\u0435\u0440\u0435\u0432\u043e \u043e\u0442\u0440\u0435\u0437\u043a\u043e\u0432 \u0434\u043b\u044f \u044d\u0442\u043e\u0439 \u0437\u0430\u0434\u0430\u0447\u0438. \u0422\u0435\u043f\u0435\u0440\u044c \u043a\u0430\u0436\u0434\u044b\u0439 \u0443\u0437\u0435\u043b \u0431\u0443\u0434\u0435\u0442 \u0445\u0440\u0430\u043d\u0438\u0442\u044c \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435, \u043a\u043e\u0442\u043e\u0440\u043e\u0435 \u043d\u0443\u0436\u043d\u043e \u0434\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u043a \u043e\u0442\u0440\u0435\u0437\u043a\u0443, \u043a \u043a\u043e\u0442\u043e\u0440\u043e\u043c\u0443 \u043e\u0442\u043d\u043e\u0441\u0438\u0442\u0441\u044f \u044d\u0442\u043e\u0442 \u0443\u0437\u0435\u043b.<\/p>\n<p>\u0414\u043b\u044f \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f \u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0438\u044f, \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0440\u0430\u0437\u0434\u0435\u043b\u0438\u0442\u044c \u043d\u0430\u0448\u0443 \u0433\u0440\u0430\u043d\u0438\u0446\u0443 \u043d\u0430 \u0447\u0430\u0441\u0442\u0438 \u0438 \u0434\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u0432 \u0443\u0437\u043b\u044b, \u043e\u0442\u043d\u043e\u0441\u044f\u0449\u0438\u0435\u0441\u044f \u043a \u044d\u0442\u0438\u043c \u043e\u0442\u0440\u0435\u0437\u043a\u0430\u043c \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 <code>v<\/code>. \u0410 \u0434\u043b\u044f \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u044f <code>i<\/code> \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u0430 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u043f\u0440\u043e\u0439\u0442\u0438 \u0432\u0435\u0441\u044c \u043f\u0443\u0442\u044c \u043e\u0442 \u043a\u043e\u0440\u043d\u044f \u0434\u043e \u0432\u0435\u0440\u0448\u0438\u043d\u044b <code>i<\/code> \u0438 \u0441\u043e\u0431\u0440\u0430\u0442\u044c \u043e\u0442\u0432\u0435\u0442, \u0441\u043b\u043e\u0436\u0438\u0432 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f.<\/p>\n<figure class=\"\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w780q1\/getpro\/habr\/post_images\/819\/e5b\/283\/819e5b28358b1d79abce515c4aab2d45.jpg\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/post_images\/819\/e5b\/283\/819e5b28358b1d79abce515c4aab2d45.jpg\" data-blurred=\"true\"\/><\/figure>\n<pre><code class=\"cpp\">void resize(vector&lt;int> &amp;arr) {     int s = (int) arr.size();     int new_s = (int) pow(2, ceil(log2(s)));     arr.resize(new_s, 0);   }      vector&lt;int> t;      void init(vector&lt;int> &amp;arr) {     resize(arr);     t.resize(arr.size() * 2, 0);   }      void add(int l, int r, int v, int x, int xl, int xr) {     if (l >= xr || xl >= r) {       return;     }     if (xl >= l &amp;&amp; xr &lt;= r) {       t[x] += v;       return;     }     int xm = (xl + xr) \/ 2;     add(l, r, v, 2 * x + 1, xl, xm);     add(l, r, v, 2 * x + 2, xm, xr);   }      int get(int i, int x, int xl, int xr) {     if (xl == xr - 1) {       return t[xl];     }     int xm = (xl + xr) \/ 2;     if (xm > i) {       return t[x] + get(i, 2 * x + 1, xl, xm);     } else {       return t[x] + get(i, 2 * x + 2, xm, xr);     }   } <\/code><\/pre>\n<h2>\u0417\u0434\u0435\u0441\u044c \u043c\u043e\u0433\u043b\u0438 \u0431\u044b\u0442\u044c \u0435\u0449\u0435 \u0437\u0430\u0434\u0430\u0447\u0438&#8230;<\/h2>\n<p>\u0421 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u0434\u0435\u0440\u0435\u0432\u0430 \u043e\u0442\u0440\u0435\u0437\u043a\u043e\u0432 \u043c\u043e\u0436\u043d\u043e \u0432 \u043e\u0434\u043d\u043e\u0439 \u0437\u0430\u0434\u0430\u0447\u0438 \u043e\u0431\u044a\u0435\u0434\u0438\u043d\u044f\u0442\u044c \u0441\u0440\u0430\u0437\u0443 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0439, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u043f\u0440\u0438\u0441\u0432\u043e\u0435\u043d\u0438\u0435 \u0438 \u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u043d\u0430 \u043e\u0442\u0440\u0435\u0437\u043a\u0435 \u0438 \u043f\u043e\u0438\u0441\u043a \u043c\u0430\u043a\u0441\u0438\u043c\u0443\u043c\u0430. \u0418\u043b\u0438 <code>XOR<\/code> \u0438\u043b\u0438 <code>OR<\/code> \u0438 \u0447\u0442\u043e-\u0442\u043e \u0435\u0449\u0435. \u0422\u0430\u043a\u0436\u0435 \u043c\u043e\u0436\u043d\u043e \u0440\u0435\u0448\u0430\u0442\u044c <a href=\"https:\/\/youtu.be\/R7J-Yu0NyHE?si=4vrTDG31tJFVzPYP\" rel=\"noopener noreferrer nofollow\">\u0434\u0432\u0443\u043c\u0435\u0440\u043d\u044b\u0435 \u0437\u0430\u0434\u0430\u0447\u0438<\/a> \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u0434\u0435\u0440\u0435\u0432\u0430 \u043e\u0442\u0440\u0435\u0437\u043a\u043e\u0432. \u041d\u043e \u0442\u0430\u043a\u0438\u0435 \u0442\u0435\u043c\u044b \u043d\u0435 \u043e\u0447\u0435\u043d\u044c \u043f\u0440\u0438\u044f\u0442\u043d\u043e \u0440\u0430\u0441\u043f\u0438\u0441\u044b\u0432\u0430\u0442\u044c, \u0434\u0430 \u0438 \u043e\u043d\u0438 \u0432\u044b\u0445\u043e\u0434\u044f\u0442 \u0437\u0430 \u0431\u0430\u0437\u043e\u0432\u043e\u0435 \u043f\u043e\u043d\u0438\u043c\u0430\u043d\u0438\u0435 \u0434\u0435\u0440\u0435\u0432\u0430 \u043e\u0442\u0440\u0435\u0437\u043a\u043e\u0432. \u041f\u043e\u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c \u0435\u0449\u0435 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0437\u0430\u0434\u0430\u0447 \u043d\u0430 \u0434\u0432\u0443\u043c\u0435\u0440\u043d\u044b\u0435 \u0438 \u043c\u043d\u043e\u0436\u0435\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u0435 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0438 \u043d\u0430 \u0434\u0435\u0440\u0435\u0432\u0435 \u043e\u0442\u0440\u0435\u0437\u043a\u043e\u0432 \u043c\u043e\u0436\u043d\u043e \u043d\u0430 <a href=\"https:\/\/github.com\/lld4n\/leetcode\/tree\/master\/%D0%B4%D1%80%D1%83%D0%B3%D0%BE%D0%B5\/%D1%82%D0%B8%D0%BD%D1%8C%D0%BA%D0%BE%D1%84%D1%84.%D0%B0%D0%B8%D1%81%D0%B4\/9\" rel=\"noopener noreferrer nofollow\">GitHub<\/a><\/p>\n<p>\u0412\u043e\u0442 \u0438 \u0432\u0441\u0435, \u043d\u0430\u0434\u0435\u044e\u0441\u044c, \u0447\u0442\u043e \u0441\u0442\u0430\u0442\u044c\u044f \u043f\u0440\u0438\u043d\u0435\u0441\u043b\u0430 \u043a\u043e\u043c\u0443-\u043d\u0438\u0431\u0443\u0434\u044c \u043f\u043e\u043b\u044c\u0437\u0443 ?<\/p>\n<\/div>\n<\/div>\n<\/div>\n<p><!----><!----><\/div>\n<p><!----><!----><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\/articles\/808511\/\"> https:\/\/habr.com\/ru\/articles\/808511\/<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<div><!--[--><!--]--><\/div>\n<div id=\"post-content-body\">\n<div>\n<div class=\"article-formatted-body article-formatted-body article-formatted-body_version-2\">\n<div xmlns=\"http:\/\/www.w3.org\/1999\/xhtml\">\n<p>\u0412\u0441\u0435\u043c \u043f\u0440\u0438\u0432\u0435\u0442. \u0412 \u044d\u0442\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0435 \u044f \u0440\u0430\u0441\u0441\u043a\u0430\u0436\u0443 \u043f\u0440\u043e \u0434\u0435\u0440\u0435\u0432\u043e \u043e\u0442\u0440\u0435\u0437\u043a\u043e\u0432. \u0414\u0435\u0440\u0435\u0432\u043e \u043e\u0442\u0440\u0435\u0437\u043a\u043e\u0432 &#8212; \u044d\u0442\u043e \u043e\u0447\u0435\u043d\u044c \u043c\u043e\u0449\u043d\u0430\u044f \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0430 \u0434\u0430\u043d\u043d\u044b\u0445, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u0434\u0435\u043b\u0430\u0442\u044c \u043c\u043d\u043e\u0433\u043e \u0440\u0430\u0437\u043d\u044b\u0445 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0439 \u043d\u0430\u0434 \u043c\u0430\u0441\u0441\u0438\u0432\u043e\u043c \u0447\u0438\u0441\u0435\u043b. \u042f \u043f\u043e\u0441\u0442\u0430\u0440\u0430\u044e\u0441\u044c \u043f\u043e \u043f\u043e\u043b\u043e\u0447\u043a\u0430\u043c \u0440\u0430\u0437\u043b\u043e\u0436\u0438\u0442\u044c \u044d\u0442\u0443 \u0442\u0435\u043c\u0443 \u0438 \u043e\u0431\u044a\u044f\u0441\u043d\u0438\u0442\u044c \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u0438 \u0434\u0435\u0440\u0435\u0432\u0430 \u043e\u0442\u0440\u0435\u0437\u043a\u043e\u0432. \u0422\u0430\u043a\u0436\u0435 \u044f \u0440\u0430\u0437\u0431\u0435\u0440\u0443 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u043d\u0435\u0442\u0440\u0438\u0432\u0438\u0430\u043b\u044c\u043d\u044b\u0445 \u0437\u0430\u0434\u0430\u0447 \u043d\u0430 \u0434\u0435\u0440\u0435\u0432\u043e \u043e\u0442\u0440\u0435\u0437\u043a\u043e\u0432. \u041f\u043e\u043c\u0438\u043c\u043e \u0441\u0430\u043c\u043e\u0433\u043e \u0434\u0435\u0440\u0435\u0432\u0430 \u043e\u0442\u0440\u0435\u0437\u043a\u043e\u0432 \u044f \u0440\u0430\u0441\u0441\u043a\u0430\u0436\u0443 \u0438 \u043f\u0440\u043e \u0441\u0432\u044f\u0437\u0430\u043d\u043d\u044b\u0435 \u0442\u0435\u043c\u044b: \u0434\u0435\u0440\u0435\u0432\u043e \u0424\u0435\u043d\u0432\u0438\u043a\u0430, \u0440\u0430\u0437\u0440\u0435\u0436\u0435\u043d\u043d\u044b\u0435 \u0442\u0430\u0431\u043b\u0438\u0446\u044b.<\/p>\n<p>\u041c\u0430\u0442\u0435\u0440\u0438\u0430\u043b \u0431\u044b\u043b \u043f\u043e\u0434\u0433\u043e\u0442\u043e\u0432\u043b\u0435\u043d \u043d\u0430 \u043e\u0441\u043d\u043e\u0432\u0435 \u043b\u0435\u043a\u0446\u0438\u0439 \u041f\u0430\u0432\u043b\u0430 \u041c\u0430\u0432\u0440\u0438\u043d\u0430 (<a href=\"https:\/\/www.youtube.com\/@pavelmavrin\" rel=\"noopener noreferrer nofollow\">\u041a\u0430\u043d\u0430\u043b \u043d\u0430 YouTube<\/a>), \u0441\u0442\u0430\u0442\u044c\u0438 \u043d\u0430 e-maxx (<a href=\"http:\/\/e-maxx.ru\/algo\/segment_tree\" rel=\"noopener noreferrer nofollow\">\u0421\u0442\u0430\u0442\u044c\u044f<\/a>) \u0438 \u043a\u0443\u0440\u0441\u0430 \u0410\u0438\u0421\u0414 \u043e\u0442 \u0422\u0438\u043d\u044c\u043a\u043e\u0444\u0444 (<a href=\"https:\/\/fintech.tinkoff.ru\/academy\/algorithms\/\" rel=\"noopener noreferrer nofollow\">\u041a\u0443\u0440\u0441<\/a>). \u041f\u0440\u0438\u043c\u0435\u0440\u044b \u043a\u043e\u0434\u0430 \u0431\u0443\u0434\u0443\u0442 \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u044b \u043d\u0430 C++.<\/p>\n<h2>\u041f\u0435\u0440\u0432\u0430\u044f \u0437\u0430\u0434\u0430\u0447\u0430<\/h2>\n<p><strong>\u0423\u0441\u043b\u043e\u0432\u0438\u0435<\/strong><br \/> \u0414\u0430\u043d \u043c\u0430\u0441\u0441\u0438\u0432 <em>arr<\/em> \u0446\u0435\u043b\u044b\u0445 \u0447\u0438\u0441\u0435\u043b \u0440\u0430\u0437\u043c\u0435\u0440\u043e\u043c <em>n<\/em>. \u041d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0432\u044b\u043f\u043e\u043b\u043d\u0438\u0442\u044c <em>m<\/em> \u0437\u0430\u043f\u0440\u043e\u0441\u043e\u0432. \u041a\u0430\u0436\u0434\u044b\u0439 \u0437\u0430\u043f\u0440\u043e\u0441 \u0432\u044b\u0433\u043b\u044f\u0434\u0438\u0442 \u0442\u0430\u043a:<\/p>\n<ul>\n<li>\n<p><code>sum(l,r)<\/code> &#8212; \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u043d\u0430\u0439\u0442\u0438 \u0441\u0443\u043c\u043c\u0443 \u043e\u0442\u0440\u0435\u0437\u043a\u0430 \u043e\u0442 <code>l<\/code> \u0434\u043e <code>r - 1<\/code> \u0438 \u0432\u0435\u0440\u043d\u0443\u0442\u044c \u0435\u0435. \u0424\u043e\u0440\u043c\u0430\u043b\u044c\u043d\u043e: <code>sum(l,r) = a[l] + a[l + 1] + ... + a[r - 1]<\/code><\/p>\n<\/li>\n<\/ul>\n<p><strong>\u0420\u0435\u0448\u0435\u043d\u0438\u0435<\/strong><br \/> \u0412\u044b\u0447\u0438\u0441\u043b\u0438\u043c <a href=\"https:\/\/ru.wikipedia.org\/wiki\/%D0%9F%D1%80%D0%B5%D1%84%D0%B8%D0%BA%D1%81%D0%BD%D0%B0%D1%8F_%D1%81%D1%83%D0%BC%D0%BC%D0%B0\" rel=\"noopener noreferrer nofollow\">\u043f\u0440\u0435\u0444\u0438\u043a\u0441\u043d\u044b\u0435 \u0441\u0443\u043c\u043c\u044b<\/a> \u043e\u0442 \u043c\u0430\u0441\u0441\u0438\u0432\u0430 <em>arr<\/em>. \u041f\u043e\u043b\u0443\u0447\u0435\u043d\u043d\u044b\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u0432\u043d\u0435\u0441\u0435\u043c \u0432 \u043c\u0430\u0441\u0441\u0438\u0432 <code>prefix<\/code><br \/> \u0422\u043e\u0433\u0434\u0430 \u043e\u0442\u0432\u0435\u0442 \u043d\u0430 \u043a\u0430\u0436\u0434\u044b\u0439 \u0437\u0430\u043f\u0440\u043e\u0441 <code>sum(l,r)<\/code> \u0431\u0443\u0434\u0435\u0442 \u0432\u044b\u0433\u043b\u044f\u0434\u0435\u0442\u044c \u0442\u0430\u043a: <code>sum(l,r) = prefix[r] - prefix[l]<\/code><\/p>\n<p><strong>\u041a\u043e\u0434<\/strong><\/p>\n<pre><code class=\"cpp\">vector&lt;int> arr;   vector&lt;int> prefix;      void build() {   prefix.push_back(0);   int b = 0;   for (int i: arr) {   b += i;   prefix.push_back(b);   }   }      int sum(int l, int r) {   return prefix[r] - prefix[l];   } <\/code><\/pre>\n<p><strong>\u0421\u043b\u043e\u0436\u043d\u043e\u0441\u0442\u044c<\/strong><br \/> \u041f\u043e\u0441\u0442\u0440\u043e\u0435\u043d\u0438\u0435 \u043f\u0440\u0435\u0444\u0438\u043a\u0441\u043d\u044b\u0445 \u0441\u0443\u043c\u043c \u0438\u043c\u0435\u0435\u0442 \u0441\u043b\u043e\u0436\u043d\u043e\u0441\u0442\u044c <code>O(n)<\/code>, \u0430 \u0441\u0430\u043c \u043e\u0442\u0432\u0435\u0442 \u043d\u0430 \u0437\u0430\u043f\u0440\u043e\u0441 \u0431\u0443\u0434\u0435\u0442 \u0437\u0430 <code>O(1)<\/code><\/p>\n<h2>\u0412\u0442\u043e\u0440\u0430\u044f \u0437\u0430\u0434\u0430\u0447\u0430<\/h2>\n<p><strong>\u0423\u0441\u043b\u043e\u0432\u0438\u0435<\/strong> \u0434\u043e\u043f\u043e\u043b\u043d\u044f\u0435\u0442\u0441\u044f<br \/> \u0414\u0430\u043d \u043c\u0430\u0441\u0441\u0438\u0432 <em>arr<\/em> \u0446\u0435\u043b\u044b\u0445 \u0447\u0438\u0441\u0435\u043b \u0440\u0430\u0437\u043c\u0435\u0440\u043e\u043c <em>n<\/em>. \u041d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0432\u044b\u043f\u043e\u043b\u043d\u0438\u0442\u044c <em>m<\/em> \u0437\u0430\u043f\u0440\u043e\u0441\u043e\u0432. \u041a\u0430\u0436\u0434\u044b\u0439 \u0437\u0430\u043f\u0440\u043e\u0441 \u0432\u044b\u0433\u043b\u044f\u0434\u0438\u0442 \u0442\u0430\u043a:<\/p>\n<ul>\n<li>\n<p><code>sum(l,r)<\/code> &#8212; \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u043d\u0430\u0439\u0442\u0438 \u0441\u0443\u043c\u043c\u0443 \u043e\u0442\u0440\u0435\u0437\u043a\u0430 \u043e\u0442 <code>l<\/code> \u0434\u043e <code>r - 1<\/code> \u0438 \u0432\u0435\u0440\u043d\u0443\u0442\u044c \u0435\u0435. \u0424\u043e\u0440\u043c\u0430\u043b\u044c\u043d\u043e: <code>sum(l,r) = a[l] + a[l + 1] + ... + a[r - 1]<\/code><\/p>\n<\/li>\n<li>\n<p><code>set(i, v)<\/code> &#8212; \u043c\u0435\u043d\u044f\u0435\u0442 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0443 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u0430 <code>arr[i]<\/code> \u043d\u0430 <code>v<\/code><\/p>\n<\/li>\n<\/ul>\n<p>\u0412 \u0442\u0430\u043a\u043e\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 \u043f\u0440\u0435\u0444\u0438\u043a\u0441\u043d\u044b\u0445 \u0441\u0443\u043c\u043c \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043d\u0435\u043e\u043f\u0442\u0438\u043c\u0430\u043b\u044c\u043d\u044b\u043c \u0440\u0435\u0448\u0435\u043d\u0438\u0435\u043c, \u043f\u043e\u0442\u043e\u043c\u0443 \u0447\u0442\u043e, \u043a\u043e\u0433\u0434\u0430 \u0443 \u043d\u0430\u0441 \u043c\u0435\u043d\u044f\u0435\u0442\u0441\u044f \u044d\u043b\u0435\u043c\u0435\u043d\u0442 <code>arr[i]<\/code>, \u0442\u043e \u0432\u0441\u0435 \u043f\u0440\u0435\u0444\u0438\u043a\u0441\u043d\u044b\u0435 \u0441\u0443\u043c\u043c\u044b \u043d\u0430\u0445\u043e\u0434\u044f\u0449\u0438\u0435\u0441\u044f \u043f\u0440\u0430\u0432\u0435\u0435 \u044d\u0442\u043e\u0433\u043e \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u0430 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0442\u0430\u043a\u0436\u0435 \u043e\u0431\u043d\u043e\u0432\u0438\u0442\u044c. \u041f\u043e\u043b\u0443\u0447\u0430\u0435\u0442\u0441\u044f \u0437\u0430\u043f\u0440\u043e\u0441 \u043d\u0430 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0435 \u0431\u0443\u0434\u0435\u0442 \u0437\u0430 <code>O(n)<\/code><\/p>\n<pre><code class=\"cpp\">void set(int i, int v) {   arr[i] = v;   for (int j = i + 1; j &lt; prefix.size(); ++j) {   prefix[j] = prefix[j - 1] + arr[j];   }   } <\/code><\/pre>\n<p>\u0412 \u0442\u0430\u043a\u043e\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u043c\u043e\u0436\u043d\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c <strong>\u0434\u0435\u0440\u0435\u0432\u043e \u043e\u0442\u0440\u0435\u0437\u043a\u043e\u0432<\/strong>, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u0438\u0437\u043c\u0435\u043d\u044f\u0442\u044c \u044d\u043b\u0435\u043c\u0435\u043d\u0442 \u0438 \u043f\u043e\u043b\u0443\u0447\u0430\u0442\u044c \u0441\u0443\u043c\u043c\u0443 \u043d\u0430 \u043e\u0442\u0440\u0435\u0437\u043a\u0435 \u0437\u0430 <code>O(logn)<\/code><\/p>\n<h2>\u0414\u0435\u0440\u0435\u0432\u043e \u043e\u0442\u0440\u0435\u0437\u043a\u043e\u0432<\/h2>\n<h3>\u041f\u043e\u0434\u0433\u043e\u0442\u043e\u0432\u043a\u0430<\/h3>\n<p>\u0414\u0435\u0440\u0435\u0432\u043e \u043e\u0442\u0440\u0435\u0437\u043a\u043e\u0432 &#8212; \u044d\u0442\u043e \u0434\u0435\u0440\u0435\u0432\u043e, \u043a\u0430\u043a \u0431\u044b \u0441\u0442\u0440\u0430\u043d\u043d\u043e \u044d\u0442\u043e \u043d\u0435 \u0437\u0432\u0443\u0447\u0430\u043b\u043e. \u041c\u044b \u0445\u043e\u0442\u0438\u043c, \u0447\u0442\u043e\u0431\u044b \u044d\u0442\u043e \u0434\u0435\u0440\u0435\u0432\u043e \u0432\u044b\u0433\u043b\u044f\u0434\u0435\u043b\u043e \u043f\u0440\u0438\u044f\u0442\u043d\u043e \u0438 \u0443\u0434\u043e\u0431\u043d\u043e. \u041f\u043e\u044d\u0442\u043e\u043c\u0443 \u0441\u0434\u0435\u043b\u0430\u0435\u043c \u043d\u0430\u0448\u0435 \u0434\u0435\u0440\u0435\u0432\u043e <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\" rel=\"noopener noreferrer nofollow\">\u0434\u0432\u043e\u0438\u0447\u043d\u044b\u043c \u0434\u0435\u0440\u0435\u0432\u043e\u043c<\/a>&#8212; \u0442\u043e \u0435\u0441\u0442\u044c \u0434\u0435\u0440\u0435\u0432\u043e\u043c, \u0443 \u043a\u043e\u0442\u043e\u0440\u043e\u0433\u043e \u043a\u0430\u0436\u0434\u044b\u0439 \u0443\u0437\u0435\u043b \u0438\u043c\u0435\u0435\u0442 \u043d\u0435 \u0431\u043e\u043b\u0435\u0435 \u0434\u0432\u0443\u0445 \u043f\u043e\u0442\u043e\u043c\u043a\u043e\u0432. \u041d\u043e \u0432 \u043e\u0442\u043b\u0438\u0447\u0438\u0435 \u043e\u0442 \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u043e\u0433\u043e \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u044f \u0434\u0432\u043e\u0438\u0447\u043d\u043e\u0433\u043e \u0434\u0435\u0440\u0435\u0432\u0430 \u0443 \u043d\u0430\u0441 \u043a\u0430\u0436\u0434\u044b\u0439 \u0443\u0437\u0435\u043b \u0431\u0443\u0434\u0435\u0442 \u0438\u043c\u0435\u0442\u044c \u043b\u0438\u0431\u043e \u0434\u0432\u0443\u0445 \u043f\u043e\u0442\u043e\u043c\u043a\u043e\u0432, \u043b\u0438\u0431\u043e \u0432\u043e\u043e\u0431\u0449\u0435 \u043d\u0435 \u0438\u043c\u0435\u0442\u044c \u043f\u043e\u0442\u043e\u043c\u043a\u043e\u0432. \u0422\u0443\u0442 \u0432\u043e\u0437\u043d\u0438\u043a\u0430\u0435\u0442 \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0430, \u0447\u0442\u043e \u0435\u0441\u043b\u0438 \u0434\u043b\u0438\u043d\u0430 \u043c\u0430\u0441\u0441\u0438\u0432\u0430 <em>arr<\/em> \u043d\u0435 \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0441\u0442\u0435\u043f\u0435\u043d\u044c\u044e \u0434\u0432\u043e\u0439\u043a\u0438, \u0442\u043e \u0442\u043e\u0433\u0434\u0430 \u0434\u0435\u0440\u0435\u0432\u043e \u0431\u0443\u0434\u0435\u0442 \u0432\u044b\u0433\u043b\u044f\u0434\u0435\u0442\u044c \u043d\u0435 \u043e\u0447\u0435\u043d\u044c \u0443\u0434\u043e\u0431\u043d\u043e. \u041f\u043e\u044d\u0442\u043e\u043c\u0443 \u0434\u043b\u044f \u0443\u043f\u0440\u043e\u0449\u0435\u043d\u0438\u044f \u043c\u044b \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u043c \u043c\u0430\u0441\u0441\u0438\u0432 <strong>\u043d\u0443\u043b\u044f\u043c\u0438<\/strong>, \u043f\u043e\u043a\u0430 \u0435\u0433\u043e \u0434\u043b\u0438\u043d\u0430 \u043d\u0435 \u0441\u0442\u0430\u043d\u0435\u0442 \u0440\u0430\u0432\u043d\u0430 <strong>\u0441\u0442\u0435\u043f\u0435\u043d\u0438 \u0434\u0432\u043e\u0439\u043a\u0438<\/strong>. \u0412 \u0442\u0435\u043e\u0440\u0438\u0438, \u0435\u0441\u043b\u0438 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0441\u044d\u043a\u043e\u043d\u043e\u043c\u0438\u0442\u044c \u043f\u0430\u043c\u044f\u0442\u044c, \u0442\u043e \u043c\u043e\u0436\u043d\u043e \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c\u0441\u044f \u0438 \u0444\u043e\u0440\u043c\u0430\u0442\u043e\u043c \u0434\u0435\u0440\u0435\u0432\u0430, \u0433\u0434\u0435 \u0434\u043b\u0438\u043d\u0430 \u043d\u0435 \u0440\u0430\u0432\u043d\u0430 \u0441\u0442\u0435\u043f\u0435\u043d\u0438 \u0434\u0432\u043e\u0439\u043a\u0438, \u043d\u043e \u043c\u044b \u0431\u0443\u0434\u0435\u043c \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0443\u0432\u0435\u043b\u0438\u0447\u0435\u043d\u0438\u0435 \u0434\u043b\u0438\u043d\u044b \u043c\u0430\u0441\u0441\u0438\u0432\u0430 \u0434\u043e \u0441\u0442\u0435\u043f\u0435\u043d\u0438 \u0434\u0432\u043e\u0439\u043a\u0438, \u0447\u0442\u043e\u0431\u044b \u0431\u044b\u043b\u043e \u0443\u0434\u043e\u0431\u043d\u0435\u0435.<\/p>\n<p>\u041f\u0440\u0438 \u0443\u0432\u0435\u043b\u0438\u0447\u0435\u043d\u0438\u0438 \u0434\u043b\u0438\u043d\u044b \u043c\u0430\u0441\u0441\u0438\u0432\u0430 \u0434\u043e \u0441\u0442\u0435\u043f\u0435\u043d\u0438 \u0434\u0432\u043e\u0439\u043a\u0438 \u043f\u043e\u043b\u0443\u0447\u0438\u0432\u0448\u0430\u044f\u0441\u044f \u0434\u043b\u0438\u043d\u0430 \u043d\u0435 \u043f\u0440\u0435\u0432\u044b\u0441\u0438\u0442 <code>2*n<\/code>, \u043f\u043e\u0442\u043e\u043c\u0443 \u0447\u0442\u043e \u0434\u0430\u0436\u0435 \u0435\u0441\u043b\u0438 \u0432\u0437\u044f\u0442\u044c \u0445\u0443\u0434\u0448\u0438\u0439 \u0441\u043b\u0443\u0447\u0430\u0439 (\u043a\u043e\u0433\u0434\u0430 \u0438\u0437\u043d\u0430\u0447\u0430\u043b\u044c\u043d\u0430\u044f \u0434\u043b\u0438\u043d\u0430 \u043c\u0430\u0441\u0441\u0438\u0432\u0430 \u043d\u0430 \u043e\u0434\u0438\u043d \u0431\u043e\u043b\u044c\u0448\u0435 \u0441\u0442\u0435\u043f\u0435\u043d\u0438 \u0434\u0432\u043e\u0439\u043a\u0438 <code>k<\/code>, \u0442\u043e \u0435\u0441\u0442\u044c <code>n = 2^k + 1<\/code>), \u0442\u043e \u043d\u0430\u043c \u043f\u0440\u0438\u0434\u0435\u0442\u0441\u044f \u0434\u043e\u0431\u0430\u0432\u0438\u0442\u044c <code>2^k - 1<\/code> \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432 \u0432 \u043c\u0430\u0441\u0441\u0438\u0432. \u041f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u0443\u0435\u043c \u0438 \u043f\u043e\u043b\u0443\u0447\u0438\u043c, \u0447\u0442\u043e \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u043d\u044b\u0445 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432 \u0431\u0443\u0434\u0435\u0442 \u0440\u0430\u0432\u043d\u043e <code>n - 2<\/code>. \u0423 \u043d\u0430\u0441 \u0431\u044b\u043b \u043c\u0430\u0441\u0441\u0438\u0432 \u0434\u043b\u0438\u043d\u043e\u0439 <code>n<\/code>, \u043c\u044b \u0432 \u0445\u0443\u0434\u0448\u0435\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u0434\u043e\u0431\u0430\u0432\u0438\u043b\u0438 <code>n - 2<\/code> \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432 \u0438 \u043f\u043e\u043b\u0443\u0447\u0438\u043b\u0438 <code>2n - 2<\/code> &#8212; \u043c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u0443\u044e \u0432\u0435\u0440\u0445\u043d\u044e\u044e \u0433\u0440\u0430\u043d\u0438\u0446\u0443.<\/p>\n<figure class=\"\"><\/figure>\n<p>\u0422\u043e \u0435\u0441\u0442\u044c \u043f\u0435\u0440\u0435\u0434 \u0442\u0435\u043c, \u043a\u0430\u043a \u043f\u0440\u043e\u0434\u043e\u043b\u0436\u0430\u0442\u044c \u0440\u0430\u0431\u043e\u0442\u0443, \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0443\u0432\u0435\u043b\u0438\u0447\u0438\u0442\u044c \u0434\u043b\u0438\u043d\u0443 \u043c\u0430\u0441\u0441\u0438\u0432\u0430 \u0434\u043e \u0441\u0442\u0435\u043f\u0435\u043d\u0438 \u0434\u0432\u043e\u0439\u043a\u0438<\/p>\n<pre><code class=\"cpp\">#include &lt;cmath> void resize(vector&lt;int> &amp;arr) {   int s = (int) arr.size();   int new_s = (int) pow(2, ceil(log2(s)));   arr.resize(new_s, 0);   } <\/code><\/pre>\n<h3>\u0421\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0430 \u0434\u0435\u0440\u0435\u0432\u0430<\/h3>\n<p>\u0414\u0435\u0440\u0435\u0432\u043e \u043e\u0442\u0440\u0435\u0437\u043a\u043e\u0432 \u0434\u043b\u044f \u044d\u0442\u043e\u0439 \u0437\u0430\u0434\u0430\u0447\u0438 \u0431\u0443\u0434\u0435\u0442 \u0432\u044b\u0433\u043b\u044f\u0434\u0435\u0442\u044c \u0442\u0430\u043a:<\/p>\n<ul>\n<li>\n<p>\u043b\u0438\u0441\u0442\u044b \u0434\u0435\u0440\u0435\u0432\u0430 (\u0442\u043e \u0435\u0441\u0442\u044c \u0443\u0437\u043b\u044b \u0431\u0435\u0437 \u043f\u043e\u0442\u043e\u043c\u043a\u043e\u0432) &#8212; \u044d\u0442\u043e \u0438\u0437\u043d\u0430\u0447\u0430\u043b\u044c\u043d\u044b\u0439 \u043c\u0430\u0441\u0441\u0438\u0432 \u0447\u0438\u0441\u0435\u043b<\/p>\n<\/li>\n<li>\n<p>\u043a\u0430\u0436\u0434\u044b\u0439 \u0443\u0437\u0435\u043b, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043d\u0435 \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043b\u0438\u0441\u0442\u043e\u043c &#8212; \u044d\u0442\u043e \u0441\u0443\u043c\u043c\u0430 \u0434\u0432\u0443\u0445 \u0435\u0433\u043e \u043f\u043e\u0442\u043e\u043c\u043a\u043e\u0432<\/p>\n<\/li>\n<\/ul>\n<figure class=\"\"><\/figure>\n<h3>\u041f\u043e\u0441\u0442\u0440\u043e\u0439\u043a\u0430 \u0434\u0435\u0440\u0435\u0432\u0430<\/h3>\n<p>\u041f\u043e\u0441\u0442\u0440\u043e\u0438\u0442\u044c \u0442\u0430\u043a\u043e\u0435 \u0434\u0435\u0440\u0435\u0432\u043e \u043c\u043e\u0436\u043d\u043e \u0437\u0430 <code>O(n)<\/code>. \u0414\u043b\u044f \u0445\u0440\u0430\u043d\u0435\u043d\u0438\u044f \u0434\u0435\u0440\u0435\u0432\u0430 \u0431\u0443\u0434\u0435\u043c \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u043e\u0431\u044b\u0447\u043d\u044b\u0439 \u043c\u0430\u0441\u0441\u0438\u0432 \u0434\u043b\u0438\u043d\u043e\u0439 <code>2n<\/code> (\u041d\u0430 \u0434\u0435\u043b\u0435 \u043e\u0434\u043d\u0430 \u043a\u043b\u0435\u0442\u043a\u0430 \u0432 \u043c\u0430\u0441\u0441\u0438\u0432\u0435 \u0431\u0443\u0434\u0435\u0442 \u043d\u0435 \u0437\u0430\u043d\u044f\u0442\u0430, \u043d\u043e \u044d\u0442\u043e \u043d\u0438 \u043d\u0430 \u0447\u0442\u043e \u043d\u0435 \u0432\u043b\u0438\u044f\u0435\u0442). \u0422\u0430\u043a\u0430\u044f \u0434\u043b\u0438\u043d\u0430, \u043f\u043e\u0442\u043e\u043c\u0443 \u0447\u0442\u043e \u043f\u0440\u0438 \u043f\u043e\u0434\u043d\u044f\u0442\u0438\u0435 \u0432\u0432\u0435\u0440\u0445 \u043f\u043e \u0443\u0440\u043e\u0432\u043d\u044f\u043c \u0434\u0435\u0440\u0435\u0432\u0430 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432 \u043d\u0430 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043d\u043e\u043c \u0443\u0440\u043e\u0432\u043d\u0435 \u0432 \u0434\u0432\u0430 \u0440\u0430\u0437\u0430 \u043c\u0435\u043d\u044c\u0448\u0435, \u0447\u0435\u043c \u043d\u0430 \u0443\u0440\u043e\u0432\u043d\u0435 \u043d\u0438\u0436\u0435. \u0418 \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u0442\u0441\u044f \u0441\u0430\u043c\u044b\u0439 \u043d\u0438\u0436\u043d\u0438\u0439 \u0443\u0440\u043e\u0432\u0435\u043d\u044c \u0445\u0440\u0430\u043d\u0438\u0442 <code>n<\/code> \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432, \u043f\u0440\u0435\u0434\u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0438\u0439 <code>n\/2<\/code> \u0438 \u0442\u0430\u043a \u0434\u0430\u043b\u0435\u0435 \u0434\u043e <code>1<\/code>.  \u042d\u0442\u043e \u0433\u0435\u043e\u043c\u0435\u0442\u0440\u0438\u0447\u0435\u0441\u043a\u0430\u044f \u0443\u0431\u044b\u0432\u0430\u044e\u0449\u0430\u044f \u043f\u043e\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u044c. \u0415\u0441\u043b\u0438 \u043f\u043e\u0434\u0441\u0447\u0438\u0442\u0430\u0442\u044c \u0441\u0443\u043c\u043c\u0443, \u0442\u043e \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u0441\u044f <code>2n - 1<\/code>, \u043e\u043a\u0440\u0443\u0433\u043b\u0438\u043c \u0434\u043b\u044f \u0443\u0434\u043e\u0431\u0441\u0442\u0432\u0430 \u0434\u043e <code>2n<\/code>.<\/p>\n<p><strong>\u041a\u0430\u043a \u0445\u0440\u0430\u043d\u0438\u0442\u044c \u0434\u0435\u0440\u0435\u0432\u043e \u0432 \u043c\u0430\u0441\u0441\u0438\u0432\u0435?<\/strong> \u041e\u0447\u0435\u043d\u044c \u043f\u0440\u043e\u0441\u0442\u043e, \u0431\u0443\u0434\u0435\u043c \u0440\u0430\u0441\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0442\u044c \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u044b \u0441\u0432\u0435\u0440\u0445\u0443 \u0432\u043d\u0438\u0437, \u0441\u043b\u0435\u0432\u0430 \u043d\u0430\u043f\u0440\u0430\u0432\u043e. \u0422\u043e\u0433\u0434\u0430 \u043a\u043e\u0440\u043d\u0435\u0432\u043e\u0439 \u0443\u0437\u0435\u043b \u0443 \u043d\u0430\u0441 \u0431\u0443\u0434\u0435\u0442 \u0438\u043c\u0435\u0442\u044c \u0438\u043d\u0434\u0435\u043a\u0441 <code>0<\/code>, \u0435\u0433\u043e \u0434\u0435\u0442\u0438 <code>1<\/code> \u0438 <code>2<\/code> \u0438 \u0442\u0430\u043a \u0434\u0430\u043b\u0435\u0435 \u0432\u043d\u0438\u0437. \u0411\u043e\u043b\u0435\u0435 \u0444\u043e\u0440\u043c\u0430\u043b\u044c\u043d\u043e \u044d\u0442\u043e \u043c\u043e\u0436\u043d\u043e \u043e\u043f\u0438\u0441\u0430\u0442\u044c \u0442\u0430\u043a: <code>left of i = 2*i + 1<\/code> \u0438 <code>right of i = 2*i + 2<\/code><\/p>\n<p>\u0412 \u0442\u0430\u043a\u043e\u043c \u0441\u043b\u0443\u0447\u0430\u0435, \u0432\u0441\u0435 \u0447\u0435\u0442\u043d\u044b\u0435 \u0438\u043d\u0434\u0435\u043a\u0441\u044b, \u043a\u0440\u043e\u043c\u0435 \u043d\u0443\u043b\u044f, \u044f\u0432\u043b\u044f\u044e\u0442\u0441\u044f \u043f\u0440\u0430\u0432\u044b\u043c\u0438 \u0434\u0435\u0442\u044c\u043c\u0438, \u0430 \u043d\u0435\u0447\u0435\u0442\u043d\u044b\u0435 \u0438\u043d\u0434\u0435\u043a\u0441\u044b \u044f\u0432\u043b\u044f\u044e\u0442\u0441\u044f \u043b\u0435\u0432\u044b\u043c\u0438 \u0434\u0435\u0442\u044c\u043c\u0438.<\/p>\n<p>\u0418\u043d\u043e\u0433\u0434\u0430 \u043c\u043e\u0436\u043d\u043e \u0431\u0443\u0434\u0435\u0442 \u0443\u0432\u0438\u0434\u0435\u0442\u044c \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044e, \u0433\u0434\u0435 \u043a\u043e\u0440\u043d\u0435\u0432\u043e\u0439 \u0443\u0437\u0435\u043b \u0438\u043c\u0435\u0435\u0442 \u0438\u043d\u0434\u0435\u043a\u0441 <code>1<\/code>, \u0442\u0430\u043a \u0442\u043e\u0436\u0435 \u043c\u043e\u0436\u043d\u043e \u0434\u0435\u043b\u0430\u0442\u044c, \u043d\u043e \u043b\u0438\u0447\u043d\u043e \u0434\u043b\u044f \u043c\u0435\u043d\u044f \u0443\u0434\u043e\u0431\u043d\u0435\u0435 \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u0441 \u043d\u0443\u043b\u044f.<\/p>\n<figure class=\"\">\n<div><figcaption>\u0420\u044f\u0434\u043e\u043c \u0441 \u0432\u0435\u0440\u0448\u0438\u043d\u043e\u0439 \u0441\u043f\u0440\u0430\u0432\u0430 \u0443\u043a\u0430\u0437\u0430\u043d \u0435\u0435 \u0438\u043d\u0434\u0435\u043a\u0441, \u0441\u043f\u0440\u0430\u0432\u0430 \u0432 \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u043e\u043c \u0441\u0442\u043e\u043b\u0431\u0446\u0435 \u0443\u043a\u0430\u0437\u0430\u043d\u043e \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432 \u043d\u0430 \u0443\u0440\u043e\u0432\u043d\u0435 <\/figcaption><\/div>\n<\/figure>\n<p>\u041a\u0430\u043a \u044f \u0438 \u043f\u0438\u0441\u0430\u043b \u0432\u044b\u0448\u0435 &#171;\u043a\u0430\u0436\u0434\u044b\u0439 \u0443\u0437\u0435\u043b, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043d\u0435 \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043b\u0438\u0441\u0442\u043e\u043c &#8212; \u044d\u0442\u043e \u0441\u0443\u043c\u043c\u0430 \u0434\u0432\u0443\u0445 \u0435\u0433\u043e \u043f\u043e\u0442\u043e\u043c\u043a\u043e\u0432&#187;, \u043d\u043e <strong>\u0447\u0442\u043e \u0435\u0449\u0435 \u043e\u0437\u043d\u0430\u0447\u0430\u0435\u0442 \u043a\u0430\u0436\u0434\u044b\u0439 \u0443\u0437\u0435\u043b?<\/strong><br \/> \u041e\u043d \u043e\u0437\u043d\u0430\u0447\u0430\u0435\u0442 \u0441\u0443\u043c\u043c\u0443 \u043d\u0430 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043d\u043e\u043c \u043e\u0442\u0440\u0435\u0437\u043a\u0435. \u0414\u043e\u043f\u0443\u0441\u0442\u0438\u043c \u0432\u043e\u0437\u044c\u043c\u0435\u043c \u0438\u043d\u0434\u0435\u043a\u0441 <code>10<\/code>. \u042d\u0442\u0430 \u0432\u0435\u0440\u0448\u0438\u043d\u0430 \u0431\u0443\u0434\u0435\u0442 \u043e\u0431\u043e\u0437\u043d\u0430\u0447\u0430\u0442\u044c \u0441\u0443\u043c\u043c\u0443 \u043d\u0430 \u043e\u0442\u0440\u0435\u0437\u043a\u0435 <code>[3, 3]<\/code>, \u0433\u0434\u0435 <code>3<\/code> &#8212; \u044d\u0442\u043e \u0438\u043d\u0434\u0435\u043a\u0441 \u0438\u0437 \u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u043c\u0430\u0441\u0441\u0438\u0432\u0430.<br \/> \u0414\u0440\u0443\u0433\u043e\u0439 \u043f\u0440\u0438\u043c\u0435\u0440: \u0438\u043d\u0434\u0435\u043a\u0441 <code>1<\/code>. \u041e\u043d \u043e\u0437\u043d\u0430\u0447\u0430\u0435\u0442 \u0441\u0443\u043c\u043c\u0443 \u043d\u0430 \u043e\u0442\u0440\u0435\u0437\u043a\u0435 <code>[0, 3]<\/code>. \u0418 \u0442\u0430\u043a \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u0441 \u043b\u044e\u0431\u044b\u043c \u0443\u0437\u043b\u043e\u043c \u0432 \u0434\u0435\u0440\u0435\u0432\u0435.<\/p>\n<figure class=\"\">\n<div><figcaption>\u0414\u043e\u0431\u0430\u0432\u0438\u043b \u043a\u0440\u0430\u0441\u043d\u044b\u0435 \u0438\u043d\u0434\u0435\u043a\u0441\u044b \u0438\u0437 \u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u043c\u0430\u0441\u0441\u0438\u0432\u0430, \u0430 \u0442\u0430\u043a\u0436\u0435 \u0443\u043a\u0430\u0437\u0430\u043b \u043f\u043e \u043f\u0440\u0438\u043c\u0435\u0440\u0443 \u0441\u0432\u044b\u0448\u0435, \u0447\u0442\u043e \u043e\u0431\u043e\u0437\u043d\u0430\u0447\u0430\u0435\u0442 \u043a\u0430\u0436\u0434\u044b\u0439 \u0438\u043d\u0434\u0435\u043a\u0441<\/figcaption><\/div>\n<\/figure>\n<p><strong>\u041a\u0430\u043a \u0436\u0435 \u043f\u043e\u0441\u0442\u0440\u043e\u0438\u0442\u044c \u0442\u0430\u043a\u043e\u0435 \u0434\u0435\u0440\u0435\u0432\u043e?<\/strong><br \/> \u0411\u0443\u0434\u0435\u043c \u0434\u0435\u043b\u0430\u0442\u044c \u044d\u0442\u043e \u0440\u0435\u043a\u0443\u0440\u0441\u0438\u0432\u043d\u043e, \u043d\u0430\u0447\u0438\u043d\u0430\u044f \u0441 \u0432\u0435\u0440\u0448\u0438\u043d\u044b. \u0410\u043b\u0433\u043e\u0440\u0438\u0442\u043c \u0431\u0443\u0434\u0435\u0442 \u0432\u044b\u0433\u043b\u044f\u0434\u0435\u0442\u044c \u0442\u0430\u043a:<\/p>\n<ul>\n<li>\n<p>\u041f\u0440\u0438\u043d\u0438\u043c\u0430\u0435\u043c \u043c\u0430\u0441\u0441\u0438\u0432, \u043d\u0430 \u043e\u0441\u043d\u043e\u0432\u0435 \u043a\u043e\u0442\u043e\u0440\u043e\u0433\u043e \u0441\u0442\u0440\u043e\u0438\u043c \u0434\u0435\u0440\u0435\u0432\u043e, \u0442\u0435\u043a\u0443\u0449\u0443\u044e \u0432\u0435\u0440\u0448\u0438\u043d\u0443 (\u0438\u043d\u0434\u0435\u043a\u0441 \u0432\u0435\u0440\u0448\u0438\u043d\u044b) \u0438 \u043b\u0435\u0432\u0443\u044e \u0438 \u043f\u0440\u0430\u0432\u0443\u044e \u0433\u0440\u0430\u043d\u0438\u0446\u0443<\/p>\n<\/li>\n<li>\n<p>\u0415\u0441\u043b\u0438 \u043b\u0435\u0432\u0430\u044f \u0438 \u043f\u0440\u0430\u0432\u0430\u044f \u0433\u0440\u0430\u043d\u0438\u0446\u0430 \u0441\u0436\u0430\u043b\u0438\u0441\u044c \u0434\u043e \u043e\u0434\u043d\u043e\u0433\u043e \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u0430, \u0442\u043e \u0443\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0435\u043c \u044d\u0442\u043e\u0442 \u044d\u043b\u0435\u043c\u0435\u043d\u0442<\/p>\n<\/li>\n<li>\n<p>\u0418\u043d\u0430\u0447\u0435, \u043d\u0430\u0445\u043e\u0434\u0438\u043c \u0441\u0435\u0440\u0435\u0434\u0438\u043d\u0443 \u0438 \u0440\u0435\u043a\u0443\u0440\u0441\u0438\u0432\u043d\u043e \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0435\u043c \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c \u0437\u0430\u043d\u043e\u0432\u043e <\/p>\n<ul>\n<li>\n<p>\u041f\u0435\u0440\u0432\u044b\u0439 \u0437\u0430\u043f\u0443\u0441\u043a &#8212; \u043b\u0435\u0432\u044b\u0435 \u0434\u0435\u0442\u0438<\/p>\n<\/li>\n<li>\n<p>\u0412\u0442\u043e\u0440\u043e\u0439 \u0437\u0430\u043f\u0443\u0441\u043a &#8212; \u043f\u0440\u0430\u0432\u044b\u0435 \u0434\u0435\u0442\u0438<\/p>\n<\/li>\n<\/ul>\n<\/li>\n<li>\n<p>\u041e\u0431\u043d\u043e\u0432\u043b\u044f\u0435\u043c \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0432 \u0442\u0435\u043a\u0443\u0449\u0435\u0439 \u0432\u0435\u0440\u0448\u0438\u043d\u0435<\/p>\n<\/li>\n<\/ul>\n<p><strong>\u041a\u043e\u0434 \u0432\u044b\u0433\u043b\u044f\u0434\u0438\u0442 \u0442\u0430\u043a:<\/strong><\/p>\n<pre><code class=\"cpp\">class segtree { public: vector&lt;int> t; int n;  segtree(vector&lt;int> &amp;arr) {   n = (int) arr.size();   t.resize(2 * n);   build(arr, 0, 0, n);   }  private:   void build(vector&lt;int> &amp;arr, int v, int tl, int tr) {       if (tl == tr - 1) {       t[v] = arr[tl];       } else {       int tm = (tl + tr) \/ 2;       build(arr, v * 2 + 1, tl, tm);       build(arr, v * 2 + 2, tm, tr);       t[v] = t[v * 2 + 1] + t[v * 2 + 2];       }     } } <\/code><\/pre>\n<p><strong>\u0420\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0438\u043c \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c \u043f\u043e \u0448\u0430\u0433\u0430\u043c:<\/strong><br \/> \u041f\u0443\u0441\u0442\u044c <code>n = 8<\/code>, \u0442\u043e\u0433\u0434\u0430 \u043c\u044b \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u043c \u0444\u0443\u043d\u043a\u0446\u0438\u044e <code>build<\/code> \u0441 <code>v = 0, tl = 0, tr = n<\/code><br \/> \u0420\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0438\u043c \u0441\u0430\u043c\u044b\u0439 \u043b\u0435\u0432\u044b\u0439 \u043f\u0443\u0442\u044c. \u041c\u044b \u0431\u0443\u0434\u0435\u043c \u0441\u0436\u0438\u043c\u0430\u0442\u044c \u043d\u0430\u0448 \u0442\u0435\u043a\u0443\u0449\u0438\u0439 \u043e\u0442\u0440\u0435\u0437\u043e\u043a (\u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0438\u0437\u043d\u0430\u0447\u0430\u043b\u044c\u043d\u043e \u0431\u044b\u043b <code>[0, n - 1]<\/code>, <code>n - 1<\/code> \u043f\u043e\u0442\u043e\u043c\u0443 \u0447\u0442\u043e \u043c\u044b \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u043c \u0441 <code>r - 1<\/code>) \u0434\u043e \u0442\u0430\u043a\u043e\u0433\u043e \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u044f, \u0447\u0442\u043e <code>tl == tr - 1<\/code>. \u0412 \u0441\u043b\u0443\u0447\u0430\u0435 \u0441 \u0441\u0430\u043c\u044b\u043c \u043b\u0435\u0432\u044b\u043c \u043f\u0443\u0442\u0435\u043c \u043c\u044b \u0441\u043e\u0436\u043c\u0435\u043c \u0435\u0433\u043e \u0434\u043e <code>[0, 0]<\/code>, \u043f\u043e\u0441\u043b\u0435 \u0447\u0435\u0433\u043e \u043c\u044b \u043f\u0440\u043e\u0438\u0437\u0432\u0435\u0434\u0435\u043c \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0435 \u043c\u0430\u0441\u0441\u0438\u0432\u0430 <code>t[7] = arr[0]<\/code>. <code>7<\/code> \u043f\u043e\u0442\u043e\u043c\u0443 \u0447\u0442\u043e \u043c\u044b \u043f\u0440\u0438 \u043a\u0430\u0436\u0434\u043e\u043c \u0432\u044b\u0437\u043e\u0432\u0435 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u0431\u0443\u0434\u0435\u043c \u0443\u0445\u043e\u0434\u0438\u0442\u044c \u0432\u043b\u0435\u0432\u043e \u0438 \u043c\u0435\u043d\u044f\u0442\u044c <code>v<\/code> \u043d\u0430 <code>2*v - 1<\/code>. \u041f\u043e \u043a\u0430\u0440\u0442\u0438\u043d\u043a\u0435 \u0432\u044b\u0448\u0435 \u043c\u043e\u0436\u043d\u043e \u043e\u0442\u0441\u043b\u0435\u0434\u0438\u0442\u044c \u043a\u0430\u043a \u0431\u0443\u0434\u0435\u043c \u043c\u0435\u043d\u044f\u0442\u044c\u0441\u044f <code>v<\/code>. \u041f\u043e\u0441\u043b\u0435 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f \u043c\u0430\u0441\u0441\u0438\u0432\u0430 \u043c\u044b \u0432\u044b\u0439\u0434\u0435\u043c \u0438\u0437 \u044d\u0442\u043e\u0433\u043e \u0432\u044b\u0437\u043e\u0432\u0430 \u0438 \u043f\u043e\u0434\u043d\u0438\u043c\u0435\u043c\u0441\u044f \u043d\u0430 \u0443\u0440\u043e\u0432\u0435\u043d\u044c \u0432\u044b\u0448\u0435. \u0418 \u043f\u043e\u0439\u0434\u0435\u043c \u0432 \u043f\u0440\u0430\u0432\u0443\u044e \u0441\u0442\u043e\u0440\u043e\u043d\u0443. \u041f\u043e\u0441\u043b\u0435 \u0442\u043e\u0433\u043e \u043a\u0430\u043a \u043f\u0440\u0430\u0432\u0430\u044f \u0441\u0442\u043e\u0440\u043e\u043d\u0430 \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442\u0441\u044f \u0443 \u043d\u0430\u0441 \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u0441\u044f, \u0447\u0442\u043e <code>t[7] = arr[0]<\/code> \u0438 <code>t[8] = arr[1]<\/code>. \u0410 <code>t[3] = t[7] + t[8]<\/code>. \u0418 \u0442\u0430\u043a \u0431\u0443\u0434\u0435\u0442 \u043f\u0440\u043e\u0434\u043e\u043b\u0436\u0430\u0442\u044c\u0441\u044f, \u043f\u043e\u043a\u0430 \u043d\u0435 \u043c\u044b \u043d\u0435 \u0432\u044b\u0439\u0434\u0435\u043c \u0438\u0437 \u0432\u044b\u0437\u043e\u0432\u043e\u0432 \u0438 \u043d\u0435 \u0432\u0435\u0440\u043d\u0435\u043c\u0441\u044f \u043a \u043f\u0435\u0440\u0432\u043e\u043c\u0443 \u0432\u044b\u0437\u043e\u0432\u0443, \u0433\u0434\u0435 \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442\u0441\u044f <code>t[0]<\/code>. \u0412 \u0438\u0442\u043e\u0433\u0435 \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u0441\u044f \u043f\u043e\u0441\u0442\u0440\u043e\u0435\u043d\u043d\u043e\u0435 \u0434\u0435\u0440\u0435\u0432\u043e \u043e\u0442\u0440\u0435\u0437\u043a\u043e\u0432.<\/p>\n<p>\u0422\u0430\u043a\u0436\u0435 \u0441\u0442\u043e\u0438\u0442 \u043e\u0442\u043c\u0435\u0442\u0438\u0442\u044c, \u0447\u0442\u043e \u0434\u0435\u0440\u0435\u0432\u043e \u043c\u043e\u0436\u043d\u043e \u043f\u043e\u0441\u0442\u0440\u043e\u0438\u0442\u044c \u0438 \u043d\u0435 \u043f\u0440\u0438\u0431\u0435\u0433\u0430\u044f \u043a \u0440\u0435\u043a\u0443\u0440\u0441\u0438\u0438. \u0422\u0430\u043a\u0436\u0435 \u043c\u043e\u0436\u043d\u043e \u0441\u0442\u0440\u043e\u0438\u0442\u044c \u0434\u0435\u0440\u0435\u0432\u043e \u0441\u043d\u0438\u0437\u0443 \u0432\u0432\u0435\u0440\u0445, \u0430 \u043d\u0435 \u043a\u0430\u043a \u0432 \u043d\u0430\u0448\u0435\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u0441\u0432\u0435\u0440\u0445\u0443 \u0432\u043d\u0438\u0437. \u042d\u0442\u0438 \u043c\u0435\u0442\u043e\u0434\u044b \u0440\u0430\u0437\u0431\u0435\u0440\u0435\u043c \u043d\u0438\u0436\u0435.<\/p>\n<h3>\u0418\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0435 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u0430 \u0432 \u043c\u0430\u0441\u0441\u0438\u0432\u0435<\/h3>\n<p>\u041f\u043e\u0441\u043b\u0435 \u043f\u043e\u0441\u0442\u0440\u043e\u0439\u043a\u0438 \u0434\u0435\u0440\u0435\u0432\u0430 \u043c\u043e\u0436\u043d\u043e \u0443\u0436\u0435 \u043f\u0435\u0440\u0435\u0445\u043e\u0434\u0438\u0442\u044c \u043a \u0441\u0430\u043c\u0438\u043c \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u044f\u043c. \u041d\u0430\u0447\u043d\u0435\u043c \u0441 \u0431\u043e\u043b\u0435\u0435 \u043b\u0435\u0433\u043a\u043e\u0433\u043e &#8212; \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0435 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u0430 \u0432 \u043c\u0430\u0441\u0441\u0438\u0432\u0435. \u041d\u0430\u043f\u043e\u043c\u043d\u044e, \u043a\u0430\u043a \u0437\u0432\u0443\u0447\u0438\u0442 \u0441\u0430\u043c\u0430 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u044f:<\/p>\n<ul>\n<li>\n<p><code>set(i, v)<\/code> &#8212; \u043c\u0435\u043d\u044f\u0435\u0442 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0443 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u0430 <code>arr[i]<\/code> \u043d\u0430 <code>v<\/code><\/p>\n<\/li>\n<\/ul>\n<figure class=\"\">\n<div><figcaption>\u0412\u0441\u043f\u043e\u043c\u0438\u043d\u0430\u0435\u043c, \u043a\u0430\u043a \u0432\u044b\u0433\u043b\u044f\u0434\u0438\u0442 \u0434\u0435\u0440\u0435\u0432\u043e<\/figcaption><\/div>\n<\/figure>\n<p>\u0420\u0430\u0437\u0431\u0435\u0440\u0435\u043c \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0435 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u0430 \u043d\u0430 \u043f\u0440\u0438\u043c\u0435\u0440\u0435: \u0434\u043e\u043f\u0443\u0441\u0442\u0438\u043c \u043d\u0430\u043c \u043d\u0430\u0434\u043e \u043f\u043e\u043c\u0435\u043d\u044f\u0442\u044c \u044d\u043b\u0435\u043c\u0435\u043d\u0442 \u0441 \u0438\u043d\u0434\u0435\u043a\u0441\u043e\u043c <code>4<\/code> \u043d\u0430 <code>1<\/code>. \u0412 \u0442\u0430\u043a\u043e\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u043a\u0440\u043e\u043c\u0435 \u0441\u0430\u043c\u043e\u0433\u043e \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u0430 \u043d\u0430\u043c \u043d\u0443\u0436\u043d\u043e \u043f\u0435\u0440\u0435\u0441\u0447\u0438\u0442\u0430\u0442\u044c \u0432\u0441\u0435 \u0432\u0435\u0440\u0448\u0438\u043d\u044b \u0434\u043e \u043a\u043e\u0440\u043d\u044f. \u0422\u0430\u043a \u043a\u0430\u043a \u0441\u0442\u0440\u043e\u0438\u043b\u0438 \u043c\u044b \u0434\u0435\u0440\u0435\u0432\u043e \u0441\u0432\u0435\u0440\u0445\u0443 \u0432\u043d\u0438\u0437, \u0442\u043e \u0438 \u0438\u0437\u043c\u0435\u043d\u044f\u0442\u044c \u0431\u0443\u0434\u0435\u043c \u0441\u0432\u0435\u0440\u0445\u0443 \u0432\u043d\u0438\u0437. \u041d\u0430\u0447\u0438\u043d\u0430\u0435\u043c \u0441 \u043a\u043e\u0440\u043d\u044f (\u0442\u0435\u043a\u0443\u0449\u0430\u044f \u0432\u0435\u0440\u0448\u0438\u043d\u0430 \u0441 \u0438\u043d\u0434\u0435\u043a\u0441\u043e\u043c <code>0<\/code>) \u0438 \u0433\u0440\u0430\u043d\u0438\u0446\u0430\u043c\u0438 <code>xl, xr<\/code> \u0440\u0430\u0432\u043d\u044b\u043c\u0438 <code>0, n<\/code> \u0441\u043e\u043e\u0442\u0432\u0435\u0441\u0442\u0432\u0435\u043d\u043d\u043e. \u041d\u0430\u0445\u043e\u0434\u0438\u043c \u0441\u0435\u0440\u0435\u0434\u0438\u043d\u0443 \u0433\u0440\u0430\u043d\u0438\u0446 \u0438 \u0441\u043c\u043e\u0442\u0440\u0438\u043c \u043a\u0430\u043a\u043e\u0439 \u0440\u0435\u0431\u0435\u043d\u043e\u043a \u043d\u0430\u043c \u043f\u043e\u0434\u0445\u043e\u0434\u0438\u0442. \u0417\u0430\u0445\u043e\u0434\u0438\u043c \u0432 \u043f\u043e\u0434\u0445\u043e\u0434\u044f\u0449\u0435\u0433\u043e \u043d\u0430\u043c \u0440\u0435\u0431\u0435\u043d\u043a\u0430. \u0422\u043e \u0435\u0441\u0442\u044c \u0432\u043d\u0430\u0447\u0430\u043b\u0435 \u0443 \u043d\u0430\u0441 \u0431\u0443\u0434\u0435\u0442 \u0441\u0435\u0440\u0435\u0434\u0438\u043d\u0430 \u0440\u0430\u0432\u043d\u0430 <code>4<\/code>. \u042d\u0442\u043e \u0437\u043d\u0430\u0447\u0438\u0442, \u0447\u0442\u043e \u0432\u0441\u0435 \u043b\u0435\u0432\u044b\u0435 \u0434\u0435\u0442\u0438 \u043b\u0435\u0436\u0430\u0442 \u043d\u0430 \u043e\u0442\u0440\u0435\u0437\u043a\u0435 <code>[0, 3]<\/code>, \u0430 \u043f\u0440\u0430\u0432\u044b\u0435 <code>[4, 7]<\/code>. \u041d\u0430\u043c \u043f\u043e\u0434\u0445\u043e\u0434\u0438\u0442 \u043f\u0440\u0430\u0432\u044b\u0439 \u0440\u0435\u0431\u0435\u043d\u043e\u043a, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u043c\u044b \u043f\u0435\u0440\u0435\u0445\u043e\u0434\u0438\u043c \u0432 \u043d\u0435\u0433\u043e. \u041f\u043e\u0432\u0442\u043e\u0440\u044f\u0435\u043c \u0432\u0441\u0435 \u0442\u043e \u0436\u0435 \u0441\u0430\u043c\u043e\u0435 \u0434\u043e \u0442\u0435\u0445 \u043f\u043e\u0440, \u043f\u043e\u043a\u0430 \u043d\u0435 \u0441\u043e\u0436\u043c\u0435\u043c \u0433\u0440\u0430\u043d\u0438\u0446\u044b \u0434\u043e \u043e\u0434\u043d\u043e\u0433\u043e \u0447\u0438\u0441\u043b\u0430. \u0412 \u043d\u0430\u0448\u0435\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u044d\u0442\u043e \u0431\u0443\u0434\u0435\u0442 <code>[4, 4]<\/code>. \u0422\u043e\u0433\u0434\u0430 \u043c\u044b \u043f\u043e\u043c\u0435\u043d\u044f\u0435\u043c \u044d\u043b\u0435\u043c\u0435\u043d\u0442 \u0432 \u043c\u0430\u0441\u0441\u0438\u0432\u0435 \u0438 \u043d\u0430\u0447\u043d\u0435\u043c \u0432\u044b\u0445\u043e\u0434\u0438\u0442\u044c \u0438\u0437 \u0440\u0435\u043a\u0443\u0440\u0441\u0438\u0438. \u041d\u0430 \u0432\u044b\u0445\u043e\u0434\u0435 \u043c\u044b \u043f\u0435\u0440\u0435\u0441\u0447\u0438\u0442\u044b\u0432\u0430\u0435\u043c \u0432\u0435\u0440\u0448\u0438\u043d\u0443 \u0432\u044b\u0448\u0435. \u0422\u043e \u0435\u0441\u0442\u044c \u043f\u0440\u043e\u0441\u0442\u043e \u0437\u0430\u043d\u043e\u0432\u043e \u0432\u044b\u0447\u0438\u0441\u043b\u044f\u0435\u043c \u0435\u0435.<\/p>\n<pre><code class=\"cpp\">void set(int i, int v, int x, int xl, int xr) {   if (xl == xr - 1) {   t[x] = v;   return;   }   int xm = (xl + xr) \/ 2;   if (i &lt; xm) {   set(i, v, 2 * x + 1, xl, xm);   } else {   set(i, v, 2 * x + 2, xm, xr);   }   t[x] = t[2 * x + 1] + t[2 * x + 2];   } <\/code><\/pre>\n<p><strong>\u0421\u043b\u043e\u0436\u043d\u043e\u0441\u0442\u044c<\/strong><br \/> \u0422\u0430\u043a\u043e\u0439 \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c \u0431\u0443\u0434\u0435\u0442 \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u0437\u0430 <code>O(logn)<\/code>, \u043f\u043e\u0442\u043e\u043c\u0443 \u0447\u0442\u043e \u0433\u043b\u0443\u0431\u0438\u043d\u0430 \u043d\u0430\u0448\u0435\u0433\u043e \u0434\u0435\u0440\u0435\u0432\u0430 \u043d\u0435 \u043f\u0440\u0435\u0432\u044b\u0448\u0430\u0435\u0442 <code>logn<\/code> \u0438 \u043d\u0430 \u043a\u0430\u0436\u0434\u043e\u0439 \u0438\u0442\u0435\u0440\u0430\u0446\u0438\u0438 \u043c\u044b \u0432\u044b\u0431\u0438\u0440\u0430\u0435\u043c \u0432 \u043b\u0435\u0432\u043e\u0433\u043e \u0438\u043b\u0438 \u043f\u0440\u0430\u0432\u043e\u0433\u043e \u0440\u0435\u0431\u0435\u043d\u043a\u0430 \u043c\u044b \u0431\u0443\u0434\u0435\u043c \u0437\u0430\u0445\u043e\u0434\u0438\u0442\u044c.<\/p>\n<h3>\u041f\u043e\u0438\u0441\u043a \u0441\u0443\u043c\u043c\u044b \u043d\u0430 \u043e\u0442\u0440\u0435\u0437\u043a\u0435<\/h3>\n<p>\u0417\u0430\u0434\u0430\u0447\u0430 \u0437\u0432\u0443\u0447\u0430\u043b\u0430 \u0442\u0430\u043a:<\/p>\n<ul>\n<li>\n<p><code>sum(l,r)<\/code> &#8212; \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u043d\u0430\u0439\u0442\u0438 \u0441\u0443\u043c\u043c\u0443 \u043e\u0442\u0440\u0435\u0437\u043a\u0430 \u043e\u0442 <code>l<\/code> \u0434\u043e <code>r - 1<\/code> \u0438 \u0432\u0435\u0440\u043d\u0443\u0442\u044c \u0435\u0435. \u0424\u043e\u0440\u043c\u0430\u043b\u044c\u043d\u043e: <code>sum(l,r) = a[l] + a[l + 1] + ... + a[r - 1]<\/code><\/p>\n<\/li>\n<\/ul>\n<figure class=\"\"><\/figure>\n<p>\u0414\u043e\u043f\u0443\u0441\u0442\u0438\u043c \u043d\u0430\u043c \u043d\u0443\u0436\u043d\u043e \u0432\u044b\u0447\u0438\u0441\u043b\u0438\u0442\u044c \u0441\u0443\u043c\u043c\u0443 \u043d\u0430 \u043e\u0442\u0440\u0435\u0437\u043a\u0435 <code>[1, 5]<\/code>, \u0442\u043e\u0433\u0434\u0430 \u043c\u044b \u0440\u0430\u0437\u043e\u0431\u044c\u0435\u043c \u044d\u0442\u043e\u0442 \u043e\u0442\u0440\u0435\u0437\u043e\u043a \u043d\u0430 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u043c\u0430\u043b\u0435\u043d\u044c\u043a\u0438\u0445 \u043e\u0442\u0440\u0435\u0437\u043a\u043e\u0432 (\u043d\u0430 \u043a\u0430\u0440\u0442\u0438\u043d\u043a\u0435 \u044d\u0442\u043e \u0441\u0438\u043d\u0438\u0435 \u043e\u0442\u0440\u0435\u0437\u043a\u0438). \u0418\u0445 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u043c\u044b \u0443\u0436\u0435 \u0437\u043d\u0430\u0435\u043c, \u043c\u044b \u043f\u0440\u043e\u0441\u0442\u043e \u0441\u043b\u043e\u0436\u0438\u043c \u044d\u0442\u0438 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u0438 \u0432\u0435\u0440\u043d\u0435\u043c \u043e\u0442\u0432\u0435\u0442.<\/p>\n<p>\u041a\u0430\u043a \u044d\u0442\u043e \u0440\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u0442\u044c. \u0412\u0441\u0435, \u043a\u0430\u043a \u0432\u0441\u0435\u0433\u0434\u0430 \u043d\u0430\u0447\u0438\u043d\u0430\u0435\u0442\u0441\u044f \u0441 \u043a\u043e\u0440\u043d\u044f \u0438 \u0441 \u0433\u0440\u0430\u043d\u0438\u0446\u0430\u043c\u0438 <code>xl = 0, xr = n<\/code>. \u041d\u043e \u0442\u0443\u0442 \u0435\u0441\u0442\u044c \u043d\u044e\u0430\u043d\u0441. \u0412 \u043a\u0430\u043a\u043e\u0439-\u0442\u043e \u043c\u043e\u043c\u0435\u043d\u0442 \u0432 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u0442\u0440\u0438 \u0432\u0430\u0440\u0438\u0430\u043d\u0442\u0430 \u0433\u0440\u0430\u043d\u0438\u0446\u044b:<\/p>\n<ol>\n<li>\n<p>\u0413\u0440\u0430\u043d\u0438\u0446\u0430 \u0432\u044b\u0448\u043b\u0430 \u0437\u0430 \u043e\u0442\u0440\u0435\u0437\u043e\u043a<\/p>\n<\/li>\n<li>\n<p>\u0413\u0440\u0430\u043d\u0438\u0446\u0430 \u043f\u043e\u043b\u043d\u043e\u0441\u0442\u044c\u044e \u0432\u043d\u0443\u0442\u0440\u0438 \u043e\u0442\u0440\u0435\u0437\u043a\u0430<\/p>\n<\/li>\n<li>\n<p>\u0413\u0440\u0430\u043d\u0438\u0446\u0430 \u0447\u0430\u0441\u0442\u0438\u0447\u043d\u043e \u0432\u043d\u0443\u0442\u0440\u0438 \u043e\u0442\u0440\u0435\u0437\u043a\u0430<\/p>\n<\/li>\n<\/ol>\n<figure class=\"\"><\/figure>\n<ol>\n<li>\n<p>\u0412 \u043f\u0435\u0440\u0432\u043e\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u043d\u0430\u043c \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0432\u044b\u0439\u0442\u0438 \u0438\u0437 \u0444\u0443\u043d\u043a\u0446\u0438\u0438, \u043f\u043e\u0442\u043e\u043c\u0443 \u0447\u0442\u043e \u0432\u043d\u0438\u0437 \u043d\u0435\u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e \u0441\u043f\u0443\u0441\u0442\u0438\u0442\u044c\u0441\u044f \u0442\u0430\u043a, \u0447\u0442\u043e\u0431\u044b \u0433\u0440\u0430\u043d\u0438\u0446\u044b \u0432\u043e\u0448\u043b\u0438 \u0432 \u043e\u0442\u0440\u0435\u0437\u043e\u043a<\/p>\n<\/li>\n<li>\n<p>\u0412\u043e \u0432\u0442\u043e\u0440\u043e\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u043c\u044b \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u043c \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0432\u0435\u0440\u0448\u0438\u043d\u044b<\/p>\n<\/li>\n<li>\n<p>\u0410 \u0432<\/p>\n<\/li>\n<\/ol>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\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-373944","post","type-post","status-publish","format-standard","hentry"],"_links":{"self":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/373944","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=373944"}],"version-history":[{"count":0,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/373944\/revisions"}],"wp:attachment":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=373944"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=373944"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=373944"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}