用c++你是一个僵尸猎手,攻击力为x。现在共有n个僵尸在你面前,编号从1到n,其中i号僵尸的防御力为d[i]。只有当你的攻击力超过某个僵尸的防御力时,才能将其消灭。请问你能消灭的僵尸的编号分别是几?输出的编号从小到大排列。 输入输出格式 输入格式 输入第一行为正整数n,n<=10000,第二行为n个非负整数代表d[i]数值,均不超过100. 第三行为一个正整数x,x<=100 输出格式 输出一行若干个整数,由空格隔开。可能没有任何输出。
时间: 2024-02-29 09:51:26 浏览: 63
好的,以下是相同算法的C++实现版本:
```c++
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
int main() {
int n, x;
cin >> n;
vector<int> d(n);
for (int i = 0; i < n; i++) {
cin >> d[i];
}
cin >> x;
vector<int> ans;
for (int i = 0; i < n; i++) {
if (d[i] < x) {
ans.push_back(i+1);
}
}
for (int i = 0; i < ans.size(); i++) {
cout << ans[i] << " ";
}
return 0;
}
```
这个算法的时间复杂度为O(n),其中n为僵尸的数量。
阅读全文