问题 5346 --负无穷大(neginf)5346: 负无穷大(neginf)
时间限制: 2 Sec 内存限制: 128 MB
提交: 10 解决: 3
[提交][状态][命题人:]题目描述
你有一个长度为 n 的数组 a[1],a[2], … ,a[n] 和一个整数 k 。要执行 n 次操作,每次操作会将 a[p[i]] 修改为 −10^100 ,保证每次修改的位置都是不同的。
在每次操作之前,你想知道所有的区间里面,权值和与 k 最接近的是多少。也就是你要找到一个区间 [i,j](1≤i≤j≤n) ,使得 |a[l]+a[l+1]+a[l+2]+..+a[r]-k| 最小,输出这个最小的绝对值。
输入
第一行两个整数 n,k。
接下来一行 n 个整数 a[1],a[2],...,a[n] 。
接下来一行 n 个整数 p[1],p[2],...,p[n] 。
输出
输出 n 行,每行一个数表示答案。
提示
数据规模
共 10 个测试点。
测试点 1 满足 n≤100 。
测试点 2,3 满足 n≤1000 。
测试点 4,5 满足 p[i] 随机生成。
测试点 6,7 满足 a[i]≥0 。
对于所有数据,满足 1≤n≤10^5, |k|≤10^9, |a[i]|≤10000 。
来源
[提交][状态]