어휘력을 기르기 위해, 소 베시는 나무 블록 네 개로 이루어진 세트를 구했다. 각 블록은 여섯 면마다 알파벳 글자가 하나씩 적힌 정육면체이다. 베시는 블록들을 일렬로 배열하여 블록 윗면의 글자들이 단어를 이루도록 하면서 철자를 배우고 있다.
베시의 네 블록 각각에 적힌 글자들과 그녀가 만들고 싶은 단어 목록이 주어질 때, 목록의 단어 중 어떤 것들을 블록으로 성공적으로 만들 수 있는지 판별하시오.
출제자: Brian Dean
출제자: Brian Dean
첫째 줄에 베시가 만들고 싶은 단어의 수 \(N\) (\(1\le N\le 10\))이 주어진다. 다음 네 줄에는 각각 대문자 여섯 개로 이루어진 문자열이 주어지며, 이는 베시의 블록 하나의 여섯 면에 적힌 글자들을 나타낸다. 다음 \(N\)개의 줄에 베시가 만들고 싶은 \(N\)개의 단어가 주어진다. 각 단어는 1글자 이상 4글자 이하의 대문자로 이루어져 있다.
베시의 목록에 있는 각 단어에 대해, 블록으로 만들 수 있으면 YES, 그렇지 않으면 NO를 출력한다.
6
MOOOOO
OOOOOO
ABCDEF
UVWXYZ
COW
MOO
ZOO
MOVE
CODE
FARMYES
NO
YES
YES
NO
NOIn this example, Bessie can spell COW, ZOO, and MOVE. Sadly, she cannot spell
MOO, since the only block with an M cannot also be used for an O. She cannot
spell FARM since there is no block with a letter R. She cannot spell CODE
since the C, D, and E all belong to the same block.
riseoj 작성
출처 올림피아드 > USACO > 2021-2022 > February > Bronze