아직 만들고 있는 페이지입니다.

이 페이지는 아직 만드는 중입니다. 보이는 내용은 바뀔 수 있습니다.

運河 (Canal)

시간 제한2초메모리 제한1024 MB

요약
격자를 k번째와 k+1번째 열 사이에서 수직으로 자를 때, 같은 높이로 이어진 영역 수가 최소가 되는 위치를 찾는다.
난이도

보통10점 중 6점

유형
유니온 파인드, 구현, 누적 합
정답자
아직 제출이 없습니다

문제

JOIG 王国は H 行 W 列のマス目に区切られた長方形の形をしている.上から i 行目 (1 ≦ i ≦ H),左から j 列目 (1 ≦ j ≦ W) のマスをマス (i,j) と呼ぶ.

各マスには標高と呼ばれる整数が定まっている.マス (i,j) の標高は Ai,j である.

JOIG 王国では,王国を縦断する運河を建設することにした.運河の建設は,以下のように行われる.

  • ある整数 k (1 ≦ k < W) を定める.左から k 列目と k+1 列目の間に,王国の上端から下端まで縦断する運河を建設する.

運河を横切らず,辺で接している標高が同じマスへの移動を繰り返すことで相互に移動できるマスの集まりをここでは平地と呼ぶ.国土を管理しやすくするため,平地の個数ができるだけ少なくなるように運河の建設位置を決めたい.

JOIG 王国の地形の情報が与えられたとき,運河を建設した後の JOIG 王国内の平地の個数としてありうる最小値を求めるプログラムを作成せよ.

입력

入力は以下の形式で与えられる.

H W
A1,1 A1,2 … A1,W
A2,1 A2,2 … A2,W
:
AH,1 AH,2 … AH,W

출력

運河を建設した後の JOIG 王国内の平地の個数としてありうる最小値を出力せよ.

제한

  • H ≧ 1.
  • W ≧ 2.
  • H × W ≦ 500 000.
  • 1 ≦ Ai,j ≦ 109 (1 ≦ i ≦ H,1 ≦ j ≦ W).
  • 入力される値はすべて整数である.

예제4

  1. 예제 1

    입력
    4 4
    1 1 1 3
    2 2 1 3
    2 1 1 3
    2 2 2 2
    
    예상 출력
    4
    
  2. 예제 2

    입력
    5 8
    1 2 2 5 5 5 5 5
    1 1 2 2 5 6 5 6
    1 1 1 1 6 6 5 6
    1 1 3 1 1 6 7 6
    1 4 1 1 1 6 6 6
    
    예상 출력
    8
    
  3. 예제 3

    입력
    1 6
    1 1 2 2 3 3
    
    예상 출력
    3
    
  4. 예제 4

    입력
    2 10
    1 1 1 1 1 3 3 3 3 4
    1 2 1 3 3 3 1 1 3 3
    
    예상 출력
    6