二十一点
时间限制:C/C++/Rust/Pascal 1秒,其他语言2秒
空间限制:C/C++/Rust/Pascal 256 M,其他语言512 M
64bit IO Format: %lld

题目描述

二十一点是经典的赌场游戏。
每个人至少两张牌,至多五张牌。
如果某人的牌的点数之和超过 21 ,视为 爆掉
牌堆里没有大小王,J\ Q\ K 算 10 点。
特别的,1 可以视为 1 点,也可以视为 11 点。
如果某张 1 被视为 11 点时爆掉,那么必须视其为 1 点。
在某一局中,你有 n 张牌,庄家有 m 张牌。
如果双方都爆掉,视为平局。
如果有一方爆掉,该方负,另一方胜。
如果双方都没爆,比较点数之和的大小,大的胜,小的负,点数相等视为平局。
现在有 t 局比赛,你需要统计 t 局结束后的赛况,输出你的胜局、平局、负局的数量。

输入描述:

第一行有一个整数 t\ (\ 1 \leq t \leq 10^5\ ) 。
随后 t 组数据,每组三行。
每组的第一行有两个整数 n,m\ (\ 2 \leq n,m \leq 5\ ) ,代表你和庄家的牌的数量。
每组的第二行有 n 个整数 a_i\ (\ 1 \leq a_i \leq 10\ ) ,代表你的 n 张牌。
每组的第三行有 m 个整数 b_i\ (\ 1 \leq b_i \leq 10\ ) ,代表庄家的 m 张牌。

输出描述:

输出三个整数,代表你的胜局、平局、负局的数量。
示例1

输入

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

输出

复制
1 1 1

说明

第一局,你 27 点,庄家 22 点,双方都爆了,平局。
第二局,你 18 点,庄家 17 点,你比庄家大,胜局。
第三局,你 16 点,庄家 20 点,你比庄家小,负局。
胜局,平局,负局的数量分别为 1\ 1\ 1