AcWing 3493. 最大的和
原题链接
简单
作者:
小松鼠1996
,
2021-05-11 19:17:51
,
所有人可见
,
阅读 391
#include <iostream>
using namespace std;
const int N = 100010;
long long a[N], st[N], s[N];
int n, k;
int main() {
cin >> n >> k;
for (int i = 1; i <= n; i++) {
cin >> a[i];
}
for (int i = 1; i <= n; i++) cin >> st[i];
for (int i = 1; i <= n; i++) {
s[i] += s[i - 1];
if (st[i]) s[i] += a[i];
}
long long cur = 0;
long long res = 0;
for (int i = 1; i <= n; i++) {
cur += a[i];
if (i > k) cur -= a[i - k];
res = max(res, cur + s[n] - s[i] + s[i - k]);
}
cout << res << endl;
return 0;
}