셜록 홈즈

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

요약
n개의 상자를 절반씩 두 그룹으로 나눠 한 색이 두 그룹 모두에서 과반이 되게 하고, 두 그룹 중 작은 비율의 최댓값과 그 색을 출력하거나 해가 없음을 알려야 합니다.
난이도

보통10점 중 6점

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

문제

유명한 탐정 셜록 홈즈가 까다로운 문제를 풀어야 합니다. 그에게는 nn개의 상자 B1,B2,…,BnB_1, B_2, \dots, B_n이 있고(nn은 짝수), 각 상자에는 공이 정확히 mm개씩 들어 있습니다. 공은 흰색 또는 검은색입니다. 상자 Bi=(Wi,Bi)B_i = (W_i, B_i)는 흰 공 WiW_i개와 검은 공 BiB_i개를 담고 있음을 뜻합니다(따라서 Wi+Bi=mW_i + B_i = m).

홈즈는 이 상자들을 각각 n/2n/2개씩 두 묶음으로 나누어야 합니다. 이때 흰 공 또는 검은 공 중 한 색이 두 묶음 모두에서 과반(그 묶음에 든 전체 공의 절반보다 많음)을 차지하도록 나눠야 합니다. 그런 색이 존재하면, 그 색 공이 각 묶음에서 차지하는 비율(%)을 각각 m1m_1, m2m_2라 합시다. 홈즈는 min⁡(m1,m2)\min(m_1, m_2)를 최대로 만드는 값을 찾아야 합니다. 홈즈를 도와줄 수 있나요?

입력

입력은 여러 개의 데이터 집합으로 이루어지며, 각 집합은 하나의 상자 구성을 나타냅니다. 각 데이터 집합은 상자의 개수 nn(n<10000n < 10000)으로 시작합니다. 이어서 한 상자에 든 공의 개수 mm(m<10000m < 10000)이 주어지고, 그다음 각 상자마다 흰 공의 개수와 검은 공의 개수(각각 <10000< 10000)가 이 순서대로 주어집니다. 모든 수는 공백(스페이스, 줄바꿈 등)으로 자유롭게 구분됩니다. 입력은 항상 올바르며 파일의 끝(EOF)에서 종료됩니다.

출력

각 데이터 집합마다 결과를 한 줄에 출력합니다. 과반을 차지하는 색이 존재하면, 그 색(흰색이면 W, 검은색이면 B)과 공백 하나, 그리고 min⁡(m1,m2)\min(m_1, m_2)의 최댓값을 소수점 이하 둘째 자리까지 반올림하여 출력합니다. 과반을 만들 수 없으면 No solution을 출력합니다.

예제4

  1. 예제 1

    입력
    4
    30
    17 13
    12 18
    20 10
    14 16
    
    예상 출력
    W 51.67
    
  2. 예제 2

    입력
    4
    30
    13 17
    18 12
    10 20
    16 14
    
    예상 출력
    B 51.67
    
  3. 예제 3

    입력
    2
    10
    6 4
    6 4
    
    예상 출력
    W 60.00
    
  4. 예제 4

    입력
    4
    5
    5 0
    5 0
    5 0
    5 0
    
    예상 출력
    W 100.00