1 #include<cstdio>
 2 #define MAXN 1000010
 3 int a[MAXN],q[MAXN];
 4 int main()
 5 {
 6     int n,k,i,j,front,rear;
 7     while(~scanf("%d%d",&n,&k))
 8     {
 9         for(i=1;i<=n;i++)
10             scanf("%d",&a[i]);
11         front=0;
12         rear=-1;
13         for(i=1;i<=k;i++)
14         {
15             for(;front<=rear&&a[q[rear]]>=a[i];rear--);
16             q[++rear]=i;
17         }
18         printf("%d",a[q[front]]);
19         for(j=1;i<=n;i++,j++)
20         {
21             if(front<=rear&&q[front]<=j)
22                 front++;
23             for(;front<=rear&&a[q[rear]]>=a[i];rear--);
24             q[++rear]=i;
25             printf(" %d",a[q[front]]);
26         }
27         putchar('\n');
28         front=0;
29         rear=-1;
30         for(i=1;i<=k;i++)
31         {
32             for(;front<=rear&&a[q[rear]]<=a[i];rear--);
33             q[++rear]=i;
34         }
35         printf("%d",a[q[front]]);
36         for(j=1;i<=n;i++,j++)
37         {
38             if(front<=rear&&q[front]<=j)
39                 front++;
40             for(;front<=rear&&a[q[rear]]<=a[i];rear--);
41             q[++rear]=i;
42             printf(" %d",a[q[front]]);
43         }
44         putchar('\n');
45     }
46     return 0;
47 }
posted on 2012-07-13 23:59  DrunBee  阅读(189)  评论(0编辑  收藏  举报