Fizz와 Buzz
시간 제한2초메모리 제한256 MB
각 항이 3 또는 5의 배수인 수열이 주어질 때, 각 위치의 수를 Fizz(3의 배수)가 만들었는지 Buzz(5의 배수)가 만들었는지 추측하되 최대 1200개의 오류를 허용한다.
문제
난쟁이 Fizz와 Buzz가 개의 정수로 이루어진 수열을 만든다. 각 원소는 다음과 같이 만들어진다. 먼저 두 친구가 공정한 동전을 던져 다음 수를 누가 만들지 정한다. 확률 로 Fizz가 만들고, 확률 로 Buzz가 만든다. 그다음 동전이 Fizz에게 유리하게 나오면 Fizz는 부터 까지의 정수 중 으로 나누어지는 모든 정수를 고려하여 그중 하나를 무작위로 선택한다. 이 정수들은 모두 같은 확률로 선택된다. 동전이 Buzz에게 유리하게 나오면 Buzz는 부터 까지의 정수 중 로 나누어지는 모든 정수를 고려하여 그중 하나를 무작위로 선택한다. 이 정수들도 모두 같은 확률로 선택된다. 모든 동전 던지기와 정수 선택은 서로 독립인 사건이다.
난쟁이들은 위 규칙에 따라 개의 정수로 이루어진 수열을 만들었다. 완성된 수열이 주어졌을 때, 어떤 수를 누가 만들었는지 추측하되 오류를 너무 많이 내지 않아야 한다.
입력
첫째 줄에 수열의 길이 이 주어진다 (). 둘째 줄에 수열 , , , 이 주어진다 (). 수열은 난수 생성기를 사용해 문제의 규칙에 따라 만들어졌음이 보장된다.
출력
각 문자가 "F" 또는 "B"인 길이 의 문자열을 한 줄에 출력한다. 완벽한 답에서 번째 문자는 수 를 Fizz가 만들었으면 "F", Buzz가 만들었으면 "B"이다. 답은 최대 개의 오류를 포함할 수 있다. 즉, 완벽한 답과 최대 개의 위치에서 다를 수 있다.
힌트
위 예시는 완벽한 답을 보여준다. 이 예시에서 풀이는 개를 초과하는 오류를 낼 수 없으므로, 형식이 올바른 답은 모두 허용된다.