题目链接:
PREV-27 蚂蚁感冒
思路:
仔细思考可知我们可以完全忽略碰面掉头这个条件;
那么我们只需要统计初始感冒蚂蚁往哪个方向、初始感冒蚂蚁左侧蚂蚁往左往右方向蚂蚁数量、初始感冒蚂蚁右侧往左往右蚂蚁数量即可;
代码:
#include<bits/stdc++.h>
using namespace std;
int main() {
#ifdef MyTest
freopen("Sakura.txt", "r", stdin);
#endif
int n, x, ll = 0, lr = 0, rl = 0, rr = 0;
cin >> n >> x;
for(int i = 1; i < n; i++) {
int y;
cin >> y;
if(y > 0) {
if(y < abs(x)) ++lr;
else ++rr;
}else {
if(-y < abs(x)) ++ll;
else ++rl;
}
}
if(x < 0) cout << 1 + (lr ? lr + rl : 0);
else cout << 1 + (rl ? rl + lr : 0);
return 0;
}