https://codeforc.es/problemset/problem/6/E

既然可以多个log,那就直接map伺候。尺取之后要查询区间里面的最大值和最小值的差。众所周知尺取的时候要是不是有序序列,不可能方便地维护极值。(或者不用map以及平衡树的话,那就用线段树,每次update一个数量,然后RMQ最值,线段树(假如不是这个范围)还得先离散化,非常傻逼)。

#include<bits/stdc++.h>
using namespace std;
typedef long long ll; int n, k;
int h[100005];
map<int, int> m;
vector<int> b; int main() {
#ifdef Yinku
freopen("Yinku.in", "r", stdin);
//freopen("Yinku.out", "w", stdout);
#endif // Yinku
scanf("%d%d", &n, &k);
for(int i = 1; i <= n; ++i)
scanf("%d", &h[i]);
int maxlen = 0;
b.resize(n);
for(int l = 1, r = 1; r <= n; ++r) {
++m[h[r]];
while(m.rbegin()->first - m.begin()->first > k) {
if(m[h[l]] == 1)
m.erase(h[l]);
else
--m[h[l]];
++l;
}
if(maxlen < r - l + 1) {
maxlen = r - l + 1;
b.clear();
b.push_back(l);
} else if(maxlen == r - l + 1)
b.push_back(l);
}
printf("%d %d\n", maxlen, b.size());
for(auto i : b)
printf("%d %d\n", i, i + maxlen - 1);
}

最新文章

  1. java web学习总结(十八) -------------------过滤器的高级使用
  2. Peter Norvig:自学编程,十年磨一剑
  3. NET Core HTTP 管道
  4. derby数据库ql语法
  5. Ajax优缺点
  6. 线程入门之yield
  7. Windows8.1 安装office2013并激活
  8. andorid 平台调用Web Service , 图片传输
  9. jQuery 文本框得失焦点应用
  10. 关于C语言中的inline
  11. 返璞归真 asp.net mvc (3) - Controller/Action
  12. MyEclipse2014web工程项目直接复制不能访问报错处理方案
  13. Qt のEXecl
  14. java之拦截器Interceptor
  15. 解决问题SyntaxError: Unexpected token import
  16. 在java代码中控制UI界面
  17. Jquery的动态切换图片
  18. 2017年7月最新浏览器市场份额,IE8份额仅剩个位数
  19. 引入CSS的三种方式
  20. Docker实现运行tomcat并部署项目war包,并实现挂载目录

热门文章

  1. lamba
  2. python装饰器的简单理解
  3. margin与padding的区别是什么?
  4. 《SaltStack技术入门与实践》——执行结果处理
  5. Spring5最新完整教程IDEA版【通俗易懂2019.11月】
  6. 数组Array方法: indexOf、filter、forEach、map、reduce使用实例
  7. 软件安装——JRE多版本问题
  8. D1. Kirk and a Binary String (easy version)
  9. Codeforce |Educational Codeforces Round 77 (Rated for Div. 2) B. Obtain Two Zeroes
  10. 手把手教你搞定个推iOS推送SDK集成