磁暴
提交数: 1040, 通过率: 30.29%, 平均分: 46.7
题目描述:
给定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
来源: 原创