i - L + 1 ~ i 까지의 수 중 가장 작은 값을 출력하기만 하면 되는 아주 간단한 문제이다. 하지만 N과 L이 최대 5e6이라는 점을 감안하면, 단순히 배열을 하나하나 탐색한다면 최악의 경우 2.5e12 의 연산이 필요하여 필연적으로 시간초과가 뜬다. 하여 필요한 연산은 Nlog(2)L 혹은 N 정도에 끝내야한다. 여기서 나는 STACK 을 약간 응용하여 시작점이 움직이는 스택을 생각해서 써봤다. 편의상 Moving Stack이라고 부르겠다. 일반적인 Stack이 (C에서 리스트로 구현할 경우) Writing point 만 움직이면서 쓸지말지를 결정한다면, Moving Stackd은 Reading point 도 같이 움직이면서 Stack 의 시작점을 정한다. 예를 들자면 , int Stack[5]..