#include #include

using namespace std;

int main() { int n; cin >> n;

vector<int> monsters(n);
for (int i = 0; i < n; i++) {
    cin >> monsters[i];
}

int m;
cin >> m;

for (int i = 0; i < m; i++) {
    int bullet;
    cin >> bullet;

    monsters[bullet - 1] -= 2;
    if (bullet > 1) {
        monsters[bullet - 2] -= 1;
    }
    if (bullet < n) {
        monsters[bullet] -= 1;
    }
}

for (int i = 0; i < n; i++) {
    cout << max(0, monsters[i]) << " ";
}

return 0;
c++只用iostream库最简单布尔类型有n只怪物排成一排编号从1到n。每一只怪物都有一个初始血量。你有m发子弹每次可以发射一发子弹攻击任意编号的怪物。如果你攻击的怪物编号为x那么编号为x的怪物的血量会下降2;与此同时如果x1则编号为x-1的怪物的血量会下降1;如果xn则编号为x+1的怪物的血量会下降1。需要注意的是怪物的血量最低会下降到0也就是说如果当前怪物的血量是1而你攻击了它那么它的血量也

原文地址: https://www.cveoy.top/t/topic/ipFB 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录