c++只用iostream库最简单有n只怪物排成一排编号从1到n。每一只怪物都有一个初始血量。你有m发子弹每次可以发射一发子弹攻击任意编号的怪物。如果你攻击的怪物编号为x那么编号为x的怪物的血量会下降2;与此同时如果x1则编号为x-1的怪物的血量会下降1;如果xn则编号为x+1的怪物的血量会下降1。需要注意的是怪物的血量最低会下降到0也就是说如果当前怪物的血量是1而你攻击了它那么它的血量也只会变为
#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;
vector<int> bullets(m);
for (int i = 0; i < m; i++) {
cin >> bullets[i];
}
for (int i = 0; i < m; i++) {
int bullet = bullets[i];
monsters[bullet - 1] = max(0, monsters[bullet - 1] - 2);
if (bullet > 1) {
monsters[bullet - 2] = max(0, monsters[bullet - 2] - 1);
}
if (bullet < n) {
monsters[bullet] = max(0, monsters[bullet] - 1);
}
}
for (int i = 0; i < n; i++) {
cout << monsters[i] << " ";
}
cout << endl;
return 0;
原文地址: https://www.cveoy.top/t/topic/ipFz 著作权归作者所有。请勿转载和采集!