fork download
  1. import sys
  2. sys.setrecursionlimit(10**9+7)
  3.  
  4. Seg_Tree=[0]*4000010
  5.  
  6. def Construct_Tree(index,left,right,lists) :
  7. if left == right :
  8. Seg_Tree[index] = lists[left-1]
  9. else :
  10. Construct_Tree(2*(index),left,(left+right)//2,lists)
  11. Construct_Tree(2*(index)+1,(left+right)//2+1,right,lists)
  12. Seg_Tree[index] = max(Seg_Tree[index*2],Seg_Tree[(index*2)+1])
  13.  
  14. def Answer_Queries(pos,left,right,low,high) :
  15. if low > right or high < left :
  16. return False
  17. elif low <= left and high >= right :
  18. return Seg_Tree[pos]
  19. else :
  20. return max(Answer_Queries(2*pos,left,(left+right)//2,low,high),Answer_Queries((2*pos)+1,(left+right)//2+1,right,low,high))
  21.  
  22. def main(*args,**kwargs) :
  23. n = input()
  24. lists = list(map(int,sys.stdin.readline().split()))
  25. k = input()
  26. Construct_Tree(1,1,n,lists)
  27. i,answer=1,[]
  28. while n >= i+k-1 :
  29. answer.append(Answer_Queries(1,1,n,i,i+k-1))
  30. i+=1
  31. print " ".join(str(i) for i in answer)
  32.  
  33. if __name__ == "__main__" :
  34. main()
  35.  
Success #stdin #stdout 0.11s 7856KB
stdin
9
1 2 3 1 4 5 2 5 6
3
stdout
3 3 4 5 5 5 6