磁暴

提交数: 657, 通过率: 24.35%, 平均分: 43.18

题目描述:

给定M及一列数,每个数在0到100,000之间。(为了方便描述,设共N个数)

输出每M个数中的最大数,即1~M中的最大数,2~M+1中的最大数……N-M+1~N中的最大数,共N-M+1个。

输入格式:

第一行是一个数M,1 < M <= 14000。接下来是N个数,每个数一行,以-1作为结尾,N不超过25000。

输出格式:

输出N-M+1个最大数,每个数一行。

数据范围:

1 < M <= 14000

1< N <=25000

样例输入:

3
10
11
10
0
0
0
1
2
3
2
-1

样例输出:

11
11
10
0
1
2
3
3

提示:

样例解释:

当前序列是10 11 10 0 0 0 1 2 3 2

10 11 10里面最大的是11

11 10 0里面最大的是11

10 0 0里面最大的是10

0 0 0里面最大的是0

0 0 1里面最大的是1

0 1 2里面最大的是2

1 2 3里面最大的是3

2 3 2里面最大的是3

 

请完善程序:

m = int(input())
a=[]
x = int( input() )
while x != -1:
    a.append( x )
    x = int(input())
n = len( a)
q = [-1] * n
head, tail = 0, 0
i = 0
while i < n:
    while  head < tail and _____________:
        ____________
    _______________
    tail += 1
    if head < tail and _______________ :
        ______________
    if i >= m-1 :
        print( a[ q[head] ] )
    _____________
时间限制: 1000ms
空间限制: 256MB

来源: 原创