You don`t need to store the stack.
If n=1 and k is odd then stack will be empty.
if n<=k then input all and output the max element.
if n>k then input first to k-1,k+1 and output max(max(first to k-1) , k+1 th element) : (k-th element always pop)
could you plz explain me the logic
According to question you need to o/p the top which is max achievable after exactly k operations.
If we Pop and Push the top then we could reduce k by 2. So, if k is one for any element then it will be poped or pushed by another element. And for if k is greater than one for any element then we can make it top .
if k >n then every element must have greater than one operation left and the top will be the max in array.
if k<=n then k-th element must be k=1 operation left and either be pop or push. So, we will ignore the k-th element and find the top from first to k+1 th position. Ex: -
1 ,2 ,3 ,4 ,5 ,6 ,7 ,999999 ,8 ,9
ans :- 8.