Tokitsukaze and Development Task
时间限制:C/C++/Rust/Pascal 1秒,其他语言2秒
空间限制:C/C++/Rust/Pascal 256 M,其他语言512 M
64bit IO Format: %lld

题目描述

Tokitsukaze (曾经)是页游 Kancolle 玩家。

在 Kancolle 中有一个开发装备的日常任务,你必须同时使用油,弹药,钢材,铝这4种资源才能进行开发。

现在 Tokitsukaze 想开发一种装备,需要 a 单位油, b 单位弹药, c 单位钢材, d 单位铝。

刚进入开发界面时,这 4 种资源初始值都是 10 个单位。 Tokitsukaze 将做一些操作使这 4 种资源量分别恰好达到目标,每次操作将执行以下操作的其中一种:

  • 将一种资源增加/减少 1 单位
  • 将一种资源增加/减少 10 单位
  • 将一种资源增加/减少 100 单位
  • 将一种资源增加到上限,每种资源的上限都是 300 单位
  • 将一种资源减少到下限,每种资源的下限都是 10 单位

注意:做任何操作后,资源量不会超过上限,也不会低于下限。

Tokitsukaze 想知道,为了恰好达到开发所需的资源量,最少需要几次操作。

输入描述:

第一行包含一个整数 T (1 \leq T \leq 10^5) --- 测试数据的组数。

对于每组测试数据:

第一行包含 4 个整数 a, b, c, d (10 \leq a,b,c,d \leq 300) --- 开发所需的资源量。

输出描述:

对于每组测试数据,输出一行,每行包含一个整数 --- 为了恰好达到开发所需的资源量需要的最少操作次数。
示例1

输入

复制
2
10 100 200 300
10 10 10 10

输出

复制
5
0

说明

样例1:

第一组测试数据,可能的操作是:

初始 [10,10,10,10]
将弹药增加 100,变成 [10,110,10,10]
将弹药减少 10,变成 [10,100,10,10]
将钢材增加到上限,变成 [10,100,300,10]
将钢材减少 100,变成 [10,100,200,10]
将铝增加到上限,变成 [10,100,200,300]

可以发现无法使用 5 次以下的操作来达到开发所需的资源量,所以答案为 5

第二组测试数据,开发所需的资源量就为资源初始值,所以不需要进行任何操作。