#4573. C. Maximum Subarray Sum
C. Maximum Subarray Sum
当前没有测试数据。
题目描述
给定一个长度为 的数组 和一个正整数 ,但数组 的某些部分缺失。你的任务是填充缺失的部分,使得数组 的最大子数组和恰好等于 ,或者报告无解。
形式上,给定一个二进制字符串 和一个部分填充的数组 ,其中:
- 若 ,表示你记得 的值,此时给定 的真实值;
- 若 ,表示你不记得 的值,此时给定 (仅为占位符)。
所有你记得的值满足 。你可以用绝对值不超过 的任意整数填充缺失的值。可以证明,若存在解,则一定存在满足 的解。
注:数组 的最大子数组和定义为 ,其中 。
输入格式
第一行包含测试用例数 。
每个测试用例:
- 第一行包含两个整数 和 。
- 第二行包含一个长度为 的二进制字符串 。
- 第三行包含 个整数 。若 ,则保证 。
输出格式
对于每个测试用例:
- 若存在解,输出 Yes,并在下一行输出填充后的数组 ;
- 若无解,输出 No。
输出字符串不区分大小写。
样例
10
3 5
011
0 0 1
5 6
11011
4 -3 0 -2 1
4 4
0011
0 0 -4 -5
6 12
110111
1 2 0 5 -1 9
5 19
00000
0 0 0 0 0
5 19
11001
-8 6 0 0 -5
5 10
10101
10 0 10 0 10
1 1
1
0
3 5
111
3 -1 3
4 5
1011
-2 0 1 -5
Yes
4 0 1
Yes
4 -3 5 -2 1
Yes
2 2 -4 -5
No
Yes
5 1 9 2 2
Yes
-8 6 6 7 -5
Yes
10 -20 10 -20 10
No
Yes
3 -1 3
Yes
-2 4 1 -5
数据范围
- 所有测试用例的 之和不超过