만드는 중입니다

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

Suffi⊗\otimes

면접 대비

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

요약
N개의 문자열에서 나온 접미사 중 홀수 번 등장하는 접미사의 개수를 구합니다.
난이도

쉬움10점 중 3점

유형
해시맵, 문자열
정답자
아직 제출이 없습니다

문제

문자열에 약한 비행씨는 문자열 알고리즘을 열심히 공부하고 있다. LCS, KMP, Rabin-Karp, Aho-Corasick...

Suffix array를 보다 머리가 터져버린 비행씨는 머리를 식힐 겸 입력으로 주어진 문자열들의 접미사를 정리하려고 한다. 다만 그냥 정리하면 재미가 없으니, 접미사 집합끼리 XOR을 하려고 한다.

문자열 SS의 접미사 집합 suffix[S]\text{suffix}[S]은 SS의 모든 접미사를 원소로 가지는 집합으로 정의한다. 두 집합 A,BA, B의 XOR인 A⊗BA\otimes B는 다음과 같이 정의한다.

A⊗B={x∣x∈A∪B and x∉A∩B}A\otimes B=\{x\mid x\in A\cup B\text{ and }x\not\in A\cap B\}

비행씨를 대신하여 주어진 문자열 S1,S2,⋯ ,SNS_1,S_2,\cdots,S_N의 접미사 집합을 차례로 XOR한 집합 (⋯((suffix[S1]⊗suffix[S2])⊗suffix[S3])⋯⊗suffix[SN])(\cdots((\text{suffix}[S_1]\otimes\text{suffix}[S_2])\otimes\text{suffix}[S_3])\cdots\otimes\text{suffix}[S_N])의 원소 개수를 구하는 프로그램을 작성하라.

입력

첫째 줄에 정수 NN이 주어진다. (1≤N≤1 000)(1\le N\le 1\,000)

둘째 줄부터 NN개의 줄에 한 줄에 하나씩 영어 소문자로만 이루어진 문자열 SiS_i가 주어진다. (1≤∣Si∣≤50)(1\le |S_i|\le 50)

출력

(⋯((suffix[S1]⊗suffix[S2])⊗suffix[S3])⋯⊗suffix[SN])(\cdots((\text{suffix}[S_1]\otimes\text{suffix}[S_2])\otimes\text{suffix}[S_3])\cdots\otimes\text{suffix}[S_N])의 원소의 개수를 출력한다.

공집합의 원소의 개수는 00이다.

예제1

  1. 예제 1

    입력
    3
    a
    aba
    ababa
    
    예상 출력
    3