보물 찾기
시간 제한1초메모리 제한2048 MB
칸에 보물을 놓거나 치우는 질의를 처리하고, 매번 각 칸에서 왼쪽과 오른쪽으로 가장 가까운 보물까지의 거리를 곱한 값의 합을 구합니다.
문제
Morgan은 보물찾기 행사를 위해 보물 창고를 설계하고 있다. 보물 창고는 0번부터 번까지 번호가 붙은 1차원 격자이며, 칸은 모두 개이다. 각 칸은 비어 있거나 보물이 있다. 처음에 0번 칸과 번 칸에는 보물이 있고, 나머지 칸은 비어 있다.
Morgan은 설계를 실험하면서 1번부터 번까지 번호가 매겨진 번의 갱신을 한다. 번째 갱신에서 Morgan은 번 칸을 바꾼다. 칸이 비어 있으면 보물을 놓고, 보물이 있으면 보물을 치워 칸을 비운다. 모든 에 대해 이 보장되므로, 0번 칸과 번 칸에는 항상 보물이 있다.
각 갱신 후에 Morgan은 보물찾기가 얼마나 어려운지 알고 싶어 한다. 번 칸에 서 있을 때의 난이도는 두 값의 곱이다. 하나는 에서 인 칸 중 가장 가까운 보물까지의 거리이고, 다른 하나는 에서 인 칸 중 가장 가까운 보물까지의 거리이다. 두 칸 사이의 거리는 번호 차이의 절댓값이다. 전체 난이도는 인 모든 번 칸의 난이도를 더한 값이다.
입력
첫 줄에 두 정수 과 가 주어진다 (; ). 이어지는 개의 줄에는 각각 번째 갱신에서 바꿀 칸을 나타내는 정수 ()가 하나씩 주어진다.
출력
각 갱신 후, 그 시점의 전체 난이도를 한 줄에 출력한다.