问题标题: 酷町堂:6813 暴走的NPC

0
0
邓千陌
邓千陌
新手守护
新手守护

 零分,请各位帮忙看下错在哪里了

#include <iostream>
#include <algorithm>
using namespace std;

int n, x; //总共n小时,道具有效时间x小时
long long p[30001]; //p[i] 第i小时进入密室的人数
bool boss[30001]; //boss[i] 第i小时NPC的状态
long long f[30001]; //f[i] 在第i个小时使用道具可通过的人数

void input(); //输入数据

int main() {
    input();
    for(int i = 0; i < x; ++i) //边界初始化:在第0时使用道具的效果
        f[0] += boss[i] * p[i];
    for(int i = 0; i <= n - x; ++i) //枚举时间
        f[i] = f[i - 1] - boss[i - 1] * p[i - 1] + boss[i + x -1] * p[i + x -1];
//  for(int i = 0; i <= n - x; ++i)
//      cout << i << " - " << i + x - 1 << ":\t" << f[i] << endl;
    int ans = 0;
    for(int i = 0; i < n; ++i)
        if(!boss[i])
            ans += p[i];
    ans += *max_element(f, f + n - x + 1);
    cout << ans;
    return 0;
}

void input() {
    cin >> n;
    for(int i = 0; i < n; ++i)
        cin >> p[i];
    for(int i = 0; i < n; ++i)
        cin >> boss[i];
    cin >> x;
}

 


0
0
0
0
0
0
我要回答