상자의 균형
시간 제한1초메모리 제한256 MB
바닥부터 쌓인 상자의 중심 좌표가 주어질 때, 각 접미사의 무게중심이 바로 아래 상자의 내부에 엄격히 들어가는지 판정한다.
문제
진수에게는 총 n개의 상자가 있다. 모든 상자는 2L × 2L 크기의 정사각형 모양이고, 상자의 밀도는 균일하다.
진수는 이 상자들을 바닥에서부터 차곡차곡 쌓아올린다. 바닥은 y=0이다.
이 상자들을 바닥에 가까이 있는 상자부터 각각 1번, 2번, ..., n번 상자라고 하면 i번 상자의 중심은 (xi, 2L×i - L)이 되고, 이는 i번 상자 한 개의 무게 중심과 같다.
상자의 밀도는 균일하므로, 상자 여러 개의 무게 중심은 각 상자의 무게 중심을 평균 낸 값이 된다.
진수는 원하는 중심 좌표에 상자들을 쌓아올렸을 때 무너지지 않고 균형을 이루는지 알고 싶다.
모든 1 ≤ i < n에 대하여 i+1, i+2, ..., n번 상자들의 무게 중심의 x좌표가 i번 상자의 구간 안에 포함되면 상자 전체가 균형을 이룬다. i번 상자의 구간은 xi-L과 xi+L 사이로 정의하며, xi-L과 xi+L은 포함하지 않는다. 따라서 상자 모서리에 걸쳐 있는 경우는 균형을 이루지 않는 것으로 본다.
n개의 상자의 중심 좌표가 주어지면, 해당 상자들이 균형을 이루는지 알아내자.
입력
첫 번째 줄에는 상자의 개수 n (1 ≤ n ≤ 200,000)과 상자의 크기 L (1 ≤ L ≤ 109)이 주어진다.
두 번째 줄에는 진수가 원하는 각 상자의 무게 중심 x좌표 x1, x2, ..., xn (-109 ≤ xi ≤ 109)이 주어진다.
출력
첫 번째 줄에 해당 상자들이 균형을 이룬다면 "stable", 그렇지 않다면 "unstable"을 출력한다.