만드는 중입니다

아직 만드는 중이라 바뀔 수 있습니다

움직이는 칸

면접 대비

시간 제한1초메모리 제한512 MB

요약
열마다 주어진 검은 칸 구간을 위아래로 옮겨 인접한 열이 서로 겹치게 만들 때, 필요한 이동 횟수의 최솟값을 구합니다.
난이도

보통10점 중 6점

유형
동적 계획법, 슬라이딩 윈도우
정답자
아직 제출이 없습니다

문제

어린 앨리스가 생일 선물로 현대적인 픽셀 그림을 받았다.

그림은 크기가 n×mn\times m인 직사각형 격자이다. 격자의 각 열에는 연속된 칸 하나 이상이 검은색으로 칠해져 있고, 나머지 칸은 모두 흰색이다.

앨리스는 임의의 두 검은색 칸 uu와 vv 사이에 검은색 칸만 지나며 변을 공유하는 칸으로 이동하는 경로가 있으면 그림이 아름답다고 본다. 경로는 uu에서 시작해 uu와 변으로 인접한 검은색 칸 ww로 가고, 다시 ww와 인접한 검은색 칸으로 이동하기를 반복해 vv에 도달한다.

한 번의 행동에서 임의의 열을 하나 골라 그 열의 검은색 칸을 모두 위 또는 아래 방향으로 한 칸 옮길 수 있다. 칸이 그림 밖으로 나가지 않는 경우에만 옮길 수 있다.

그림을 아름답게 만드는 데 필요한 행동 횟수의 최솟값을 구하라.

입력

첫 줄에 두 정수 nn과 mm이 주어진다. 각각 그림의 행 수와 열 수이다 (1≤n,m≤100 0001 \le n, m \le 100\,000). 그림의 전체 칸 수는 10610^{6}을 넘지 않는다 (1≤n⋅m≤1 000 0001 \le n \cdot m \le 1\,000\,000).

다음 mm개의 줄에는 각각 두 정수 sis_i와 tit_i가 주어진다. 이는 ii번째 열에서 검은색 칸의 시작 행과 끝 행이다 (1≤si≤ti≤n1 \le s_i \le t_i \le n).

출력

그림을 아름답게 만드는 데 필요한 행동 횟수의 최솟값을 한 줄에 출력한다.

예제1

  1. 예제 1

    입력
    9 3
    1 2
    4 5
    7 9
    
    예상 출력
    4