만드는 중입니다

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

Fizz와 Buzz

시간 제한2초메모리 제한256 MB

요약
각 항이 3 또는 5의 배수인 수열이 주어질 때, 각 위치의 수를 Fizz(3의 배수)가 만들었는지 Buzz(5의 배수)가 만들었는지 추측하되 최대 1200개의 오류를 허용한다.
난이도

보통10점 중 6점

유형
확률, 수학, 그리디, 구현
정답자
아직 제출이 없습니다

문제

난쟁이 Fizz와 Buzz가 nn개의 정수로 이루어진 수열을 만든다. 각 원소는 다음과 같이 만들어진다. 먼저 두 친구가 공정한 동전을 던져 다음 수를 누가 만들지 정한다. 확률 12\frac{1}{2}로 Fizz가 만들고, 확률 12\frac{1}{2}로 Buzz가 만든다. 그다음 동전이 Fizz에게 유리하게 나오면 Fizz는 11부터 10 00010\,000까지의 정수 중 33으로 나누어지는 모든 정수를 고려하여 그중 하나를 무작위로 선택한다. 이 정수들은 모두 같은 확률로 선택된다. 동전이 Buzz에게 유리하게 나오면 Buzz는 11부터 10 00010\,000까지의 정수 중 55로 나누어지는 모든 정수를 고려하여 그중 하나를 무작위로 선택한다. 이 정수들도 모두 같은 확률로 선택된다. 모든 동전 던지기와 정수 선택은 서로 독립인 사건이다.

난쟁이들은 위 규칙에 따라 nn개의 정수로 이루어진 수열을 만들었다. 완성된 수열이 주어졌을 때, 어떤 수를 누가 만들었는지 추측하되 오류를 너무 많이 내지 않아야 한다.

입력

첫째 줄에 수열의 길이 nn이 주어진다 (1≤n≤10 0001 \le n \le 10\,000). 둘째 줄에 수열 a1a_1, a2a_2, …\ldots, ana_n이 주어진다 (1≤ai≤10 0001 \le a_i \le 10\,000). 수열은 난수 생성기를 사용해 문제의 규칙에 따라 만들어졌음이 보장된다.

출력

각 문자가 "F" 또는 "B"인 길이 nn의 문자열을 한 줄에 출력한다. 완벽한 답에서 ii번째 문자는 수 aia_i를 Fizz가 만들었으면 "F", Buzz가 만들었으면 "B"이다. 답은 최대 12001200개의 오류를 포함할 수 있다. 즉, 완벽한 답과 최대 12001200개의 위치에서 다를 수 있다.

힌트

위 예시는 완벽한 답을 보여준다. 이 예시에서 풀이는 1010개를 초과하는 오류를 낼 수 없으므로, 형식이 올바른 답은 모두 허용된다.

예제1

  1. 예제 1

    입력
    10
    3216 7770 8448 3438 6255 330 405 5835 6140 7475
    
    예상 출력
    FBFFBBFBBB