Sliding Window

TimeLimit:12000MS  MemoryLimit:65536K
64-bit integer IO format:%lld
未提交 | 登录后收藏 | 已有4人收藏了本题
Problem Description

Case Time Limit: 5000MS

An array of size n ≤ 106 is given to you. There is a sliding window of size k which is moving from the very left of the array to the very right. You can only see the k numbers in the window. Each time the sliding window moves rightwards by one position. Following is an example:
The array is [1 3 -1 -3 5 3 6 7], and k is 3.

Window positionMinimum valueMaximum value
[1  3  -1] -3  5  3  6  7 -13
 1 [3  -1  -3] 5  3  6  7 -33
 1  3 [-1  -3  5] 3  6  7 -35
 1  3  -1 [-3  5  3] 6  7 -35
 1  3  -1  -3 [5  3  6] 7 36
 1  3  -1  -3  5 [3  6  7]37

Your task is to determine the maximum and minimum values in the sliding window at each position.

本题数据极其巨大,可能要进行输出优化,否则会超时,具体代码可以参考下面

void Out(int a)    //输出一个整型
{
    if(a<0)
    {
          putchar('-');
          a=-a;
    }
    if(a>9)
    Out(a/10);
    putchar(a%10+'0');
}

注意换行最好用 putchar("\n");

不要使用任何的printf,哪怕只是printf("\n");也会使输出慢十倍

Input
The input consists of two lines. The first line contains two integers n and k which are the lengths of the array and the sliding window. There are n integers in the second line.
Output
There are two lines in the output. The first line gives the minimum values in the window at each position, from left to right, respectively. The second line gives the maximum values.
SampleInput
8 3
1 3 -1 -3 5 3 6 7
SampleOutput
-1 -3 -3 -3 3 3
3 3 5 5 6 7
Submit
题目统计信息详细
总AC数182
通过人数85
尝试人数99
总提交量471
AC率18.05%
AC该题后可以添加标签
贴完标签可以获得20ACB。
并且可以获得本题所有提交代码查看权限。
点击标题可以显示标签。
如果你还没认真思考过这题,请不要查看标签
如果您已经通过了该题,请务为该题贴上标签

T^T Online Judge

[BUG反馈] [FAQ] [闽ICP备17026590号-1]
当前版本:3.24 系统时间: