网易测试岗笔试第二题

#include<iostream>
#include<string>
#include<sstream>
#include<algorithm>
#include<vector>
using namespace std;

int sum_max(vector<int>&vecn,vector<int>&vecflag,int start,int k)
{
    int sum = 0;
    for (int i = start; i < start+k; i++)
    {
        if (vecflag[i]==0)
        {
            sum+=vecn[i];
        }
        else
            continue;
    }
    return sum;
}

int main()
{
    vector<int>vecn;
    vector<int>vecflag;
    int n,k;
    cin>>n>>k;
    vecn.reserve(n);
    vecflag.reserve(n);
    for (int i = 0; i < n; i++)
    {
        cin>>vecn[i];
    }
    for (int i = 0; i < n; i++)
    {
        cin>>vecflag[i];
    }
    int sum = 0;
    if (n<=k)
    {
        for (int i = 0; i < n; i++)
        {
            sum += vecn[i];
        }
        cout<<sum;
        system("pause");
        return 0;
    }
    for (int i = 0; i < n-k; i++)
    {
        int result = sum_max(vecn,vecflag,i,k);
        if (sum < result)
        {
            sum = result;
        }
    }
    for (int i = 0; i < n; i++)
    {
        if (vecflag[i] == 1)
        {
            sum += vecn[i];
        }
    }
    cout<<sum;
    system("pause");
    return 0;

}
#网易##测试#
全部评论

相关推荐

11-18 09:44
Java
小白也想要offer:简历别放洋屁,搞不还还放错了,当然你投外企除外,以上纯属个人观点
点赞 评论 收藏
分享
10-30 10:16
南京大学 Java
龚至诚:给南大✌️跪了
点赞 评论 收藏
分享
点赞 收藏 评论
分享
牛客网
牛客企业服务