田忌赛马
题号:NC231619
时间限制:C/C++/Rust/Pascal 1秒,其他语言2秒
空间限制:C/C++/Rust/Pascal 256 M,其他语言512 M
64bit IO Format: %lld

题目描述

田忌赛马是大家耳熟能详的故事,也是运筹学中的经典案例。

假设,齐国大将田忌和齐威王约定赛马,这次比赛共 n 回合,谁获胜的回合数多谁取得最终的胜利。两人各有 n 匹马,每回合由双方各派出一匹马比赛(同一匹马只能派出一次)。

如果田忌已经知道了这 2n 匹马的速度值(赛马的时候总是速度值高的获胜)和齐王派出马比赛的顺序,并且他可以自由选择自己的马的比赛顺序。为了向齐威王展示自己的运筹能力,田忌想要赢得尽可能多的回合数,请问田忌最多能够赢得多少回合的胜利。

输入描述:

首先,第一行是一个整数 T,代表总共有 T 组独立的测试数据。

然后是 T 组测试数据,每组测试数据有三行,

第一行一个整数 n,代表双方各自有多少匹马。

第二行 n 个整数 a_1, a_2, a_3,... ,a_n,代表田忌派出参赛的 n 匹马的速度值,

第三行 n 个整数 b_1, b_2, b_3,... ,a_n,代表齐威王派出参赛的 n 匹马的速度值。

*
*
* ()。
* 保证 ( 如果 ),且 ()

输出描述:

每组测试数据输出一行,每行一个整数代表在该测试数据中田忌最多能赢得的回合数。
示例1

输入

复制
2
3
2 3 5
1 4 6
5
1 3 5 7 10
4 8 9 11 15

输出

复制
2
2

说明

第一组样例中,田忌以速度值为 2 的马迎战齐威王速度值为 6 的马,输掉一回合;田忌以速度值为 3 的马迎战齐威王速度值为 1 的马,赢下一回合;田忌以速度值为 5 的马迎战齐威王速度值为 4 的马,赢下一回合,最终获得 2 回合的胜利。

第二组样例中,田忌最多赢得 2 回合的胜利。田忌以速度值为 10 的马迎战齐威王速度值为 9 的马,以速度值为 7 的马迎战速度值为 4 的马,获得 2 回合的胜利。另外,田忌以速度值为 10 的马迎战齐威王速度值为 9 的马,以速度值为 5 的马迎战速度值为 4 的马,获得 2 回合的胜利;田忌以速度值为 10 的马迎战齐威王速度值为 8 的马,以速度值为 5 的马迎战速度值为 4 的马,获得 2 回合的胜利等方案都是可行的。而且可以通过枚举证明,在这一组数据中田忌不可能赢得超过 2 回合的胜利。