문제 설명
당신은 CCPC 참가를 위해 충칭에 온 학교 프로그래밍 대회 팀의 팀장입니다. 대회가 끝난 후 팀원 간의 유대를 강화하기 위해 단체 저녁 식사를 주최하려고 합니다. 하지만 대회 전에 훠궈를 먹느라 예산을 모두 소진했기 때문에, 식사 비용은 모든 참가자가 균등하게 나누어 부담해야 합니다(즉, 총비용이 $W$인 식사에 $k$명이 참석하면 각자 $\frac{W}{k}$를 지불합니다).
팀에는 $n$명의 학우가 있습니다. 저녁 식사에 참석하는 각 학우는 정확히 한 가지 요리를 주문합니다. $i$번째 학우는 가격이 $w_i$인 요리를 주문합니다. 또한 각 학우에게는 예산 한도 $r_i$가 있어서, 최종적으로 나누어 부담하는 식사 비용이 $r_i$를 초과하면 $i$번째 학우는 호텔에 남아 배달 음식을 시켜 먹습니다.
팀장으로서 당신은 저녁 식사에 참석하는 학우의 수를 최대화하고 싶습니다. 당신의 목표는 $m$명의 학우로 이루어진 부분집합을 선택하여, 그들이 각자 자신의 요리를 주문했을 때 나누어 부담하는 비용($m$개 요리 가격의 합을 $m$으로 나눈 값)이 선택된 $m$명의 학우 중 누구의 예산 $r_i$도 초과하지 않도록 하는 것입니다. 가능한 $m$의 최댓값을 구하세요.
만약 $m \ge 1$인 조건을 만족하는 부분집합이 존재하지 않는다면 $0$을 출력하세요.
입력
하나의 테스트 파일에 여러 개의 테스트 케이스가 포함됩니다. 입력의 첫 번째 줄에는 테스트 케이스의 수를 나타내는 단일 정수 $T$ ($1 \le T \le 10^5$)가 주어집니다.
각 테스트 케이스에 대하여:
- 입력의 첫 번째 줄에는 학우의 수를 나타내는 단일 정수 $n$ ($1 \le n \le 10^5$)이 주어집니다.
- 다음 줄에는 $n$개의 정수가 주어지며, 그중 $i$번째 정수 $w_i$ ($1 \le w_i \le 10^9$)는 $i$번째 학우가 주문하는 요리의 가격을 나타냅니다.
- 그다음 줄에는 $n$개의 정수가 주어지며, 그중 $i$번째 정수 $r_i$ ($1 \le r_i \le 10^9$)는 $i$번째 학우가 지불할 용의가 있는 최대 금액을 나타냅니다.
모든 테스트 케이스에서 $n$의 합은 $10^5$을 초과하지 않음이 보장됩니다.
출력
각 테스트 케이스마다 정답을 나타내는 정수 하나를 한 줄에 출력합니다.
예제
예제 입력 1
2 5 1 2 3 4 5 5 4 3 2 1 10 3 1 4 1 5 9 2 6 5 3 5 8 9 7 9 3 2 3 8 4
예제 출력 1
3 7