若第一个往左跑
-
若有往右跑并且绝对值大于第一个, 一定不会感冒
-
若有往左跑并且绝对值小于第一个, 一定不会感冒
-
若有往左跑并且绝对值大于第一个, 则:
有4 ,则全被感冒, 否则 ,3则全无 -
若有往右跑并且绝对值小于第一个,一定会感冒
若第一个往右跑
-
若有往右跑并且绝对值大于第一个, 一定不会感冒
-
若有往左跑并且绝对值小于第一个, 一定不会感冒
-
若有往右跑并且绝对值小于第一个,则:
有4 ,则全被感冒, 否则 ,3则全无 -
若有往左跑并且绝对值大于第一个, 一定会感冒
#include <iostream>
using namespace std;
const int N = 555;
int n;
int a[N];
int main()
{
cin >> n;
int t;
cin >> t;
a[0] = t;
int res = 1;
for (int i = 1; i < n; i++) cin >> a[i];
if (t > 0) //第一个是往右跑
{
int flag = 0; //默认没有 若有往左跑并且绝对值大于第一个则flag=1
for (int i = 1; i < n; i++)
{
if (a[i]<0 && abs(a[i])>t) //若有往左跑并且绝对值大于第一个, 一定会感冒
{
res++;
flag = 1;
}
}
if (flag)
for (int i = 1; i < n; i++)
{
if (a[i] > 0 && a[i] < t) //若有往右跑并且绝对值小于第一个, 一定会感冒
res++;
}
cout << res;
}
else //第一个是往左跑
{
int flag = 0;
for (int i = 1; i < n; i++)
{
if (a[i] > 0 && a[i] < abs(t)) //若有往右跑并且绝对值小于第一个,一定会感冒
{
flag = 1;
res++;
}
}
if (flag)
for (int i = 1; i < n; i++)
{
if (a[i]<0 && abs(a[i])>abs(t)) //若有往左跑并且绝对值大于第一个
res++;
}
cout << res;
}
}