만드는 중입니다

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

유전자 조합

면접 대비

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

요약
두 개의 대문자로 이루어진 유전자 N개가 주어질 때, 서로 다른 두 유전자를 조합해 만든 2세대 유전자의 표현형이 될 수 있는 알파벳을 구합니다.
난이도

보통10점 중 4점

유형
구현, 수학
정답자
아직 제출이 없습니다

문제

서울과기대 학생들은 실험을 하다가 처음 보는 생물의 유전자를 발견했다. 이 유전자는 형질 두 개로 나타내며, 형질은 대문자 알파벳으로 표현한다. 유전자끼리 조합할 수 있다. 두 유전자를 조합하면 첫 번째 유전자의 첫 번째 형질과 두 번째 유전자의 두 번째 형질이 붙어서 다음 세대 유전자가 생긴다. 유전자의 두 형질에 있는 알파벳 중 사전순으로 같거나 큰 알파벳을 그 유전자의 표현형이라고 한다.

NN개의 1세대 유전자가 주어지면, 이들은 서로 다른 모든 1세대 유전자와 조합할 수 있다. 조합으로 생긴 2세대 유전자의 표현형이 될 수 있는 알파벳의 수와 그 알파벳을 구하시오.

입력

첫 번째 줄에 유전자의 개수 NN이 주어진다. (2≤N≤100 0002 \le N \le 100\,000)

두 번째 줄에는 1세대 유전자 NN개가 공백으로 구분되어 주어진다.

출력

첫 번째 줄에 2세대 유전자의 표현형이 될 수 있는 알파벳의 수를 출력한다.

두 번째 줄에는 그 표현형 알파벳을 사전순으로 정렬하여 공백으로 구분해 출력한다.

예제1

  1. 예제 1

    입력
    3
    AB DC XP
    
    예상 출력
    4
    C D P X