#include<stdio.h>

#include<string.h>

#define N  1100000

int a[N];

int fmin[N],fmax[N];

int tmin[N],tmax[N];

int dicmax(int l,int r,int f[],int k) {

    int mid;

     while(l<=r) {

        mid=(l+r)/2;

        if(k>=f[mid])//

            r=mid-1;

        else

            l=mid+1;

     }

     return l;//这里的r返回第一个大于k的数的位置-1

}

int dicmin(int l,int r,int f[],int k) {

  int mid;

  while(l<=r) {

    mid=(l+r)/2;

    if(k<=f[mid])

        r=mid-1;

    else

        l=mid+1;

  }

  return l;//

}

int main() {

   int n,k,i,j,front,end;

   while(scanf("%d%d",&n,&k)!=EOF) {

     for(i=1;i<=n;i++)

        scanf("%d",&a[i]);

     front=end=1;

     fmin[front]=a[1];

     tmin[front]=1;

     for(i=2;i<=k;i++) {

        end=dicmin(front,end,fmin,a[i]);

     //   printf("%d\n",end);

        fmin[end]=a[i];

        tmin[end]=i;

     }

     printf("%d",fmin[front]);

     for(i=k+1;i<=n;i++) {

       end=dicmin(front,end,fmin,a[i]);

        fmin[end]=a[i];

        tmin[end]=i;

        while(tmin[front]<i-k+1&&front<=end)

            front++;

        printf(" %d",fmin[front]);

     }

     printf("\n");

     front=end=1;

     fmax[1]=a[1];

     tmax[1]=1;

     for(i=2;i<=k;i++) {

        end=dicmax(front,end,fmax,a[i]);

        fmax[end]=a[i];

        tmax[end]=i;

     }

      printf("%d",fmax[front]);

       for(i=k+1;i<=n;i++) {

        end=dicmax(front,end,fmax,a[i]);

        fmax[end]=a[i];

        tmax[end]=i;

        while(tmax[front]<i-k+1&&front<=end)

            front++;

        printf(" %d",fmax[front]);

     }

     printf("\n");

   }

return 0;}

最新文章

  1. 【探索】无形验证码 —— PoW 算力验证
  2. hadoop 2.4 遇到的问题
  3. Day3-python基础3
  4. 【转载】C++中public,protected,private访问
  5. G - YY&#39;s new problem(HUSH算法,目前还不懂什么是HUSH算法)
  6. C#中sizeof的用法实例分析
  7. CodeForces 164A Variable, or There and Back Again 搜索
  8. Dora.Interception,为.NET Core度身打造的AOP框架 [3]:多样化拦截器应用方式
  9. 实验一:c++简单程序设计(1)
  10. 第二次Scrum冲刺——Life in CCSU
  11. MDK编译过程
  12. spring,springmvc,mybatis整合ssm框架出现ORA-02289:序列不存在问题
  13. Ubuntu fcitx CPU占用率很高解决方法
  14. js时间戳如何转时间
  15. Nhibernate + MySQL 类型映射
  16. 使用pyspark模仿sqoop从oracle导数据到hive的主要功能(自动建表,分区导入,增量,解决数据换行符问题)
  17. 【Verilog】verilog实现奇数次分频
  18. 20145118 《Java程序设计》第1周学习总结
  19. Windows pip安装失败:no module named pkg_resources
  20. 基于OpenSSL的RSA加密应用(非算法)

热门文章

  1. React实战之Ant Design—Upload上传_附件上传
  2. Java多线程(六)守护进程
  3. linux编译安装gcc5.3.0
  4. 暴力+构造 Codeforces Round #283 (Div. 2) C. Removing Columns
  5. magento “Model collection resource name is not defined” 错误
  6. 解决前后端分离的“两次请求”引出的Web服务器跨域请求访问问题的解决方案
  7. Linux下磁盘分区、挂载、卸载操作记录
  8. Android 性能优化(12)网络优化( 8)Monitoring the Battery Level and Charging State
  9. jquery实现文字自动向上滚动,鼠标放上去停止,移开继续滚动代码...
  10. EasyUI系列学习(五)-Resizable(调整大小)