洛谷UKE。
CF显示:
Time limit exceeded on test 3
那个大佬能帮一下呀。
#include<bits/stdc++.h>
using namespace std;
const int arr=1e5+5;
int a[arr],t[arr],n,m;
int main(){
cin>>n>>m;
int ans=0;
for(int i=1;i<=n;i++){
cin>>a[i];
}
for(int i=1;i<=n;i++){
cin>>t[i];
if(t[i]){
ans+=a[i];
}
}
int sum=0,l=1,r=1,mx=-1;
if(t[1]==0){
sum+=a[1];
}
while(l<=r&&r<n){
while(r<=n&&r-l+1<m){
r++;
if(t[r]==0){
sum+=a[r];
}
}
while(l<r&&r-l+1==m){
if(sum>mx){
mx=sum;
}
if(t[l]==0){
sum-=a[l];
}
l++;
}
}
cout<<ans+mx;
return 0;
}