/*
正值头向右
速度:1cm/s
性质:
1.相遇等价于穿过
分初始感冒蚂蚁位置左右两边讨论
一、
初始感冒蚂蚁向右走的情况:
1.右边向左走,必感染,right
2.右边向右走,必不感染,
3.左边向左走,必不感染
4.左边向右走,left
4.1 有右边向左走,必感染
4.2 无右边向左走,必不感染
则,被感染的蚂蚁数量为 4.1:right + left + 1
4.2:1
二、
初始感冒蚂蚁向左走的情况
1.左边向左走,必不感染
2.左边向右走,必感染 left
3.右边向右走,必不感染
4.右边向左走,right
4.1 有左边向右走,必感染
4.2 无左边向右走,必不感染
则,被感染的蚂蚁数量为 4.1:right + left + 1
4.2:1
*/
#include <iostream>
#include <algorithm>
#include <cstdio>
#include <cstring>
using namespace std;
const int N = 55;
int n, x[N];
int main()
{
cin >> n;
for(int i = 0; i < n; i++) cin >> x[i];
// left:左边向右走的蚂蚁数量, right:右边向左走的蚂蚁数量
int left = 0, right = 0;
for(int i = 1; i < n; i++)
{
if(abs(x[i]) < abs(x[0]) && x[i] > 0) left ++;
else if(abs(x[i]) > abs(x[0]) && x[i] < 0) right ++;
}
if((x[0] > 0 && right == 0) || (x[0] < 0 && left == 0)) cout << 1 << endl;
else cout << left + right + 1 << endl;
return 0;
}
1211. 蚂蚁感冒
于 2023-10-26 17:08:13 首次发布