아직 만들고 있는 페이지입니다.

이 페이지는 아직 만드는 중입니다. 보이는 내용은 바뀔 수 있습니다.

차

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

요약
각 컵의 양과 초기 온도가 주어질 때, 분할과 혼합을 반복해 요구되는 양과 목표 온도를 가진 컵들을 만들 수 있는지 판정한다.
난이도

보통10점 중 6점

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

문제

Bytemommy는 자기 Bytekids를 진심으로 아낀다. 그런데 좀 잘 잊어버리는 편이라, 아이들에게 제대로 된 이름을 붙여 주는 대신 11부터 nn까지의 연속된 정수로 번호를 매겼다. 매일 그녀는 Bytekids 각자에게 그 아이가 좋아하는 컵에 담아 차를 준비한다. 이 집의 모든 찻잔은 한 가지 특이한 성질을 지니는데, 유한한 공간만 차지하는데도 용량이 무한하다. 다만 이건 우리의 편의를 위한 것일 뿐이다. ii번 Bytekid는 매일 정확히 l_il\_i bitre의 차를 마시는 것을 좋아한다. 그런데 차의 양만이 아이들의 요구 사항은 아니다. 온도도 적절히 맞춰져야 한다. ii번 Bytekid는 자기 차의 온도가 정확히 b_ib\_i Bytesius 도이기를 바란다.

안타깝게도 어느 날 덜렁대는 Bytemommy가 차의 온도를 뒤죽박죽으로 만들어, ii번 컵에 담긴 차의 온도가 b_ib\_i가 아니라 정확히 a_ia\_i Bytesius 도가 되었다. 물론 ii번 아이는 여전히 자기 컵에 l_il\_i bitre를 받았다. 아직 다 잃은 것은 아니다. Bytekids는 매우 영리해서, 몇 개의 보조 컵을 이용해 자기들의 차를 섞기 시작했고, 알맞은 양과 온도의 차가 담긴 컵을 얻으려 한다. Bytekids가 목표를 달성할 수 있는지, 즉 ii번 차가 정확히 l_il\_i bitre이고 b_ib\_i Bytesius 도가 되도록 nn개의 차를 얻을 수 있는지 판별해야 한다.

형식적으로, Bytekids는 다음 단계를 임의의 횟수만큼 수행할 수 있다.

  • 차 나누기. aa bitre의 차가 담긴 온도 tt인 컵이 주어졌을 때, 0<x<a0<x<a인 임의의 실수 xx에 대해 온도 tt인 xx bitre의 차가 담긴 컵과 a−xa-x bitre의 차가 담긴 컵 두 개를 만든다. 처음 컵의 차는 당연히 더 이상 존재하지 않는다.
  • 차 섞기. 각각 온도 t_at\_a, t_bt\_b인 aa bitre, bb bitre의 차가 담긴 컵 두 개가 주어졌을 때, 온도가 a⋅t_a+b⋅t_ba+b\frac{a \cdot t\_a + b \cdot t\_b}{a + b}인 a+ba+b bitre의 차가 담긴 컵 하나를 만든다. 즉 처음 두 온도의 가중 평균이다. 여기서도 처음 두 컵의 차는 더 이상 존재하지 않는다.

입력

첫 줄에 테스트케이스의 수를 나타내는 정수 tt가 주어진다. (1≤t≤100 0001 \le t \le 100\,000)

각 테스트케이스의 설명은 Bytekids의 수를 나타내는 정수 nn이 있는 줄로 시작한다. (1≤n≤100 0001 \le n \le 100\,000) 다음 nn개의 줄이 Bytekids를 설명한다. 그중 ii번째 줄에는 세 정수 l_il\_i, a_ia\_i, b_ib\_i가 주어지며, 각각 ii번 컵에 담긴 차의 양(처음과 요구되는 최종 양 모두)을 bitre로, 그리고 그 차의 처음 온도와 요구 온도를 나타낸다. (1≤l_i,a_i,b_i≤1 000 0001 \le l\_i, a\_i, b\_i \le 1\,000\,000)

모든 테스트케이스에 걸친 nn 값의 합은 1 000 0001\,000\,000을 넘지 않는다.

출력

tt개의 줄을 출력해야 하며, 그중 ii번째 줄에는 ii번 테스트케이스에서 Bytekids가 목표를 달성할 수 있으면 TAK, 아니면 NIE를 출력한다.

힌트

차가 담긴 컵을 두 수의 쌍으로 나타내자. 쌍 (l,t)(l, t)는 온도 tt Bytesius 도인 ll bitre의 차가 담긴 컵을 뜻한다.

첫 번째 테스트케이스에서 Bytekids는 컵 (2,1)(2, 1)과 (2,5)(2, 5)를 가진다. 차 나누기 연산으로 컵 (12,1)(\frac12, 1), (32,1)(\frac32, 1), (12,5)(\frac12, 5), (32,5)(\frac32, 5)를 얻을 수 있다.

그다음 컵 (12,1)(\frac12, 1)과 (32,5)(\frac32, 5)를 섞으면 12+32=2\tfrac12 + \tfrac32 = 2 bitre이고 온도가

12⋅1+32⋅512+32=4\frac{\frac12 \cdot 1 + \frac32 \cdot 5}{\frac12 + \frac32} = 4

인 차, 즉 컵 (2,4)(2,4)를 얻는다. 마찬가지로 컵 (32,1)(\frac32, 1)과 (12,5)(\frac12, 5)를 섞으면 (2,2)(2, 2)를 얻는다. 결국 Bytekids는 알맞은 양과 온도의 차가 담긴 컵 두 개를 갖게 된다.

두 번째 테스트케이스에서는 두 차 모두 너무 뜨겁다. 여기서는 별로 할 수 있는 게 없다.

세 번째 테스트케이스에서는 Bytekids가 컵을 맞바꾸기만 하면 된다.

예제1

  1. 예제 1

    입력
    5
    2
    2 1 4
    2 5 2
    2
    1 4 3
    1 5 4
    2
    1 5 7
    1 7 5
    2
    1 4 1
    1 2 5
    3
    2 6 4
    1 2 3
    3 4 5
    
    예상 출력
    TAK
    NIE
    TAK
    NIE
    TAK