Cattle doze off network programming that thinking

https://www.nowcoder.com/practice/93f2c11daeaf45959bb47e7894047085?tpId=98&tqId=32833&tPage=1&rp=1&ru=%2Fta%2F2019test&qru=%2Fta%2F2019test%2Fquestion-ranking

code show as below:

#include<iostream>
#include<stdio.h>
#include<cmath>
#define INF 0x3f3f3f3f
using namespace std;

int n,k,a[100001]={0},flag[100001];
int tot=0,sum=0;

int main(){
    scanf("%d%d",&n,&k);
    for(int i=1;i<=n;i++){
        scanf("%d",&a[i]);
    }
    for(int i=1;i<=n;i++){
        scanf("%d",&flag[i]);
        if(flag[i]==1){
            tot+=a[i];
        }
        sum+=a[i];
    }

    if(n<=k){
        printf("%d",sum);
        return 0;
    }

    for(int i=1;i<=n;i++){
        if(flag[i]==1){
            a[i]=0;
        }
    }

    int maxl=0;
    for(int i=1;i<=n-k+1;i++){
        int temp=0;
        if (flag[i]==0||i==n-k+1){
            for(int j=i;j<i+k;j++){
                temp+=a[j];
            }
            maxl=maxl>temp?maxl:temp;
        }
    }
    printf("%d",tot+maxl);
    return 0;
}

Guess you like

Origin www.cnblogs.com/zzh1582188532/p/12164463.html