只能通过60%用例,求帮助。
4、蚂蚁感冒:
https://www.lanqiao.cn/problems/221/learning/?page=1&first_category_id=1&tags=%E6%80%9D%E7%BB%B4
#include <iostream>
#include<vector>
#include<algorithm>
using namespace std;
int absolutevalue(int a) {
return a >= 0 ? a : -a;
} //求绝对值
bool cmp(int a,int b) {
if (absolutevalue(a) < absolutevalue(b))
return true;
else
return false;
}
int main()
{
int n; //蚂蚁的总数
int first; //生病的蚂蚁
int count = 1;//生病的蚂蚁数
cin >> n;
vector<int>ant,ant2;
for (int i = 0; i < n; i++) {
int antnum;
cin >> antnum;
ant.push_back(antnum);
}
first = ant[0];
for (int i = 0; i < n; i++) {
ant2.push_back( absolutevalue(ant[i]));
}
sort(ant.begin(), ant.end(),cmp);
/*for (int it : ant) {
cout << it << " ";
}*/
auto it = find(ant.begin(), ant.end(), first);
if (first == ant.back()) {
for (auto iter = it; iter < ant.end();iter++) {
if (*iter < 0) { count++; }
}
}
if (first > 0) {
for (auto iter = it; iter < ant.end();iter++) {
if (*iter < 0) { count++; }
}
if (count > 1) {
for (auto iter = ant.begin(); iter < it; iter++) {
if (*iter > 0) { count++; }
}
}
cout << count;
return 0;
}
if (first < 0) {
for (auto iter = ant.begin(); iter < it; iter++) {
if (*iter > 0) { count++; }
}
if (count > 1) {
for (auto iter = it; iter < ant.end(); iter++) {
if (*iter < 0) { count++; }
}
}
cout << count;
return 0;
}
return 0;
}