题号:NC50388
时间限制:C/C++/Rust/Pascal 1秒,其他语言2秒
空间限制:C/C++/Rust/Pascal 32 M,其他语言64 M
64bit IO Format: %lld
题目描述
Tehran的一家每天24小时营业的超市,需要一批出纳员来满足它的需要。超市经理雇佣你来帮他解决问题——超市在每天的不同时段需要不同数目的出纳员(例如,午夜时只需要一小批,而下午则需要很多)为顾客提供优质服务。他希望雇佣最少数目的出纳员。
经理已经提供给你一天的每一小时需要出纳员的最少数量——
%2CR(1)%2C%20%5Ccdots%2CR(23))
。R(0)表示从午夜到上午1:00需要出纳员的最小数目,R(1)表示上午1:00到2:00需要的,等等。每一天,这些数据都是相同的。有N人申请这项工作,每个申请者i在每24小时中,从一个特定的时刻开始连续工作恰好8小时,定义

为上面提到的开始时刻。也就是说,如果第i个申请者被录取,他(她)将从

时刻开始连续工作8小时。
请你编写一个程序,输入R(i)和

,它们都是非负整数,计算为满足上述限制需要雇佣的最少出纳员数目。在每一时刻可以有比对应的R(i)更多的出纳员在工作。
输入描述:
第一行为测试点的数目T。
对于每组测试数据,第一行为24个整数,表示
;
接下来一行一个正整数N,表示申请者数目;
接下来N行每行一个整数
。
两组测试数据之间没有空行。
输出描述:
对于每个测试点,输出一行,包含一个整数,表示需要出纳员的最小数目。如果无解,输出No Solution。
示例1
输入
复制
1
1 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1
5
0
23
22
1
10
备注:
对于全部数据,
。