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

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

Set

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

요약
길이 k이고 문자가 1, 2, 3인 서로 다른 문자열 n개가 주어질 때, 각 위치에서 세 문자가 모두 같거나 모두 다른 순서 없는 삼중항의 개수를 센다.
난이도

보통10점 중 7점

유형
해시맵, 완전 탐색, 조합론, 비트 연산
정답자
아직 제출이 없습니다

문제

인기 있는 카드 게임 SET에서 플레이어의 목표는 set이라는 특별한 성질을 가진 세 장의 카드 조합을 찾는 것이다. 각 카드에는 개수, 모양, 투명도, 색이 서로 다른 도형들이 그려져 있다.

Marin과 Josip은 최근 이 카드 한 벌을 샀고, 이제는 게임을 멈출 수가 없다. 둘은 set을 알아보는 데 너무 능숙해져서, 카드가 네 가지 성질로만 결정된다는 사실이 곧 지루해졌다. 그래서 게임의 일반화된 버전으로 재미를 보기로 했다.

두 사람에게는 n장의 서로 다른 카드가 있다. 각 카드는 1, 2, 3 중 하나인 문자 k개로 이루어진 수열로 표현된다. 카드의 순서는 중요하지 않다.

세 장의 카드로 이루어진 순서 없는 조합이 set이라는 것은, k개의 각 위치에서 세 카드에 대응하는 문자가 모두 같거나 서로 모두 다른 경우를 말한다. 예를 들어 1123, 1322, 1221로 표현되는 세 카드는 set을 이룬다. 첫 번째와 세 번째 위치의 문자는 각각 1, 2로 모두 같고, 두 번째와 네 번째 위치의 문자는 서로 다르기(1, 2, 3이 어떤 순서로든 나타남) 때문이다.

탁자 위의 이 n장의 카드를 보면서 두 사람은 궁금해졌다. 이 n장의 카드 중 set을 이루는 순서 없는 세 장의 조합은 몇 개나 될까? 이 질문에 답하는 프로그램을 작성하시오.

입력

첫 번째 줄에는 두 정수 n과 k가 주어진다. 각각 카드의 수와 한 카드의 성질 개수이다.

다음 n개의 줄에는 각각 카드를 나타내는 문자 k개로 이루어진 수열이 주어진다. 각 문자는 1, 2, 3 중 하나이다. 서로 다른 줄에는 서로 다른 수열이 주어진다.

출력

한 줄에 set을 이루는 순서 없는 세 장의 조합의 수를 출력한다.

제한

모든 부분문제에서 1 ≤ k ≤ 12이고 1 ≤ n ≤ 3k이다.

힌트

세 번째 예제에 대한 설명: 두 set은 111, 222, 333과 111, 123, 132이다.

예제3

  1. 예제 1

    입력
    3 4
    1123
    1322
    1221
    
    예상 출력
    1
    
  2. 예제 2

    입력
    2 2
    11
    22
    
    예상 출력
    0
    
  3. 예제 3

    입력
    5 3
    111
    222
    333
    123
    132
    
    예상 출력
    2