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

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

졸업식

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

요약
각 칸이 학급 문자로 주어진 N×M 격자에서 같은 열이나 같은 학급에 속한 학생은 같은 색을 쓰도록 할 때 가능한 최대 색의 수를 구한다.
난이도

보통10점 중 6점

유형
유니온 파인드, 그래프, 해시맵, 구현
정답자
아직 제출이 없습니다

문제

학교 운영진이 다가오는 졸업식에서 골치 아픈 문제를 하나 마주쳤다. 여러분이 이 문제를 해결해 주길 바라고 있다. 졸업식에서 학생들은 NN개의 행에 서고 각 행에는 MM명의 학생이 있다. 운영진은 졸업식을 최대한 화려하게 만들고 싶어서 학생들에게 여러 가지 색의 모자를 나눠 주려고 한다.

배치가 보기 좋으려면 같은 열에 있는 모든 학생이 같은 색 모자를 써야 한다. 그리고 소외감을 느끼는 학생이 없도록 같은 반 학생도 모두 같은 색 모자를 써야 한다. 각 학생의 행과 열은 이미 정해져 있지만 모자 색은 정해지지 않았다. 운영진은 학생들에게 모자 색을 배정해 졸업식을 최대한 화려하게 만들 방법을 여러분에게 묻고 있다.

졸업식에서 학생들이 어떻게 배치되는지 주어졌을 때, 학생들에게 배정할 수 있는 서로 다른 모자 색의 최대 개수를 구하는 프로그램을 작성하시오.

입력

첫째 줄에 세 정수 NN, MM (1≤N,M≤7001 \leq N, M \leq 700), KK (1≤K≤261 \leq K \leq 26)가 주어진다. NN은 행의 개수, MM은 열의 개수, KK는 반의 개수이다.

다음 NN개의 줄에는 각각 MM개의 문자가 주어지며, 졸업식에서 학생들이 어떻게 배치되는지 나타낸다. ii번째 줄의 jj번째 문자는 A부터 알파벳 KK번째 글자 사이의 대문자이며, ii번째 줄 jj번째 열에 있는 학생이 속한 반이다. 각 반에는 학생이 적어도 한 명 있다.

출력

같은 열에 있는 모든 학생과 같은 반에 있는 모든 학생이 각각 같은 모자 색을 쓰도록 학생들에게 모자 색을 배정할 때, 서로 다른 모자 색의 최대 개수를 정수로 출력한다.

힌트

첫 번째 예제에서는 둘째 열에 반 A 학생 한 명과 반 B 학생 한 명이 서 있다. 두 학생이 같은 색 모자를 써야 하므로 반 A 전체가 반 B 전체와 같은 색을 써야 한다. 따라서 졸업식에 있는 모든 학생이 같은 색을 써야 하고, 답은 11이 된다.

두 번째 예제에서는 첫째 열에 반 A 학생과 반 B 학생이 한 명씩 있으므로 반 A와 반 B가 같은 색을 써야 한다. 반면 반 C는 다른 색 모자를 받을 수 있다. 답은 22가 된다.

세 번째 예제에서는 같은 열에 서로 다른 반 학생 두 명이 나타나지 않으므로 각 반에 서로 다른 색을 줄 수 있다. 답은 33이 된다.

마지막 예제에서는 반 A, B, C 학생 모두에게 한 색을 주고 반 D, E 학생 모두에게 다른 색을 줄 수 있다. 답은 22가 된다.

예제4

  1. 예제 1

    입력
    2 3 2
    AAB
    ABB
    
    예상 출력
    1
    
  2. 예제 2

    입력
    2 2 3
    AC
    BC
    
    예상 출력
    2
    
  3. 예제 3

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

    입력
    3 5 5
    ABECE
    BCDAE
    CADBD
    
    예상 출력
    2