Memory
시간 제한1초메모리 제한256 MB
뒤집힌 카드 50장(25쌍)으로 메모리 게임을 하며 faceup(C)를 호출해 각 짝을 찾아 25개의 사탕을 모두 받게 한다.
문제

Memory라는 게임을 50장의 카드로 한다. 각 카드에는 A부터 Y까지(ASCII 65부터 89까지)의 문자 하나가 앞면에 인쇄되어 있고, 각 문자는 정확히 두 장의 카드에 나타난다. 카드는 무작위로 섞여 뒷면이 위로 오도록 책상에 놓인다.
Jack은 카드 두 장을 뒤집어 문자를 보이게 하면서 게임을 한다. Jack은 뒤집힌 두 카드에서 어떤 문자의 두 장을 처음으로 모두 보게 되면 그 문자에 대해 어머니에게 사탕을 하나 받는다. 예를 들어 Jack이 M이 적힌 두 카드를 처음으로 모두 뒤집으면 사탕을 하나 받는다. 두 문자가 같든 다르든 Jack은 두 카드를 다시 뒷면이 위로 오게 뒤집는다. 이 과정은 Jack이 25개의 사탕(문자마다 하나씩)을 받을 때까지 반복된다.
여러분은 게임을 진행하는 프로시저 play를 구현해야 한다. 구현은 채점기가 구현한 프로시저 faceup(C)를 호출해야 한다. C는 뒤집고 싶은 카드를 나타내는 1부터 50까지의 수이다. 그 카드는 현재 뒤집혀 있으면 안 된다. faceup(C)는 카드 C에 인쇄된 문자를 반환한다.
faceup을 두 번 호출할 때마다 채점기는 두 카드를 자동으로 다시 뒷면이 위로 오게 뒤집는다.
프로시저 play는 Jack이 25개의 사탕을 모두 받은 뒤에만 종료할 수 있다. Jack이 마지막 사탕을 받은 순간 이후에도 faceup(C)를 호출할 수 있다.