AcWing 1211. 蚂蚁感冒
原题链接
简单
作者:
昼最长
,
2020-04-14 15:12:33
,
所有人可见
,
阅读 428
#include <iostream>
#include <cstring>
using namespace std;
struct Node{
int pos, dir;
}node[60];
int main()
{
int n, ans = 1;
scanf("%d", &n);
memset(node, 0, sizeof node);
for(int i = 0; i < n; i ++)
{
scanf("%d", &node[i].pos);
if(node[i].pos > 0) node[i].dir = 1;
else {
node[i].dir = -1;
node[i].pos *= -1;
}
}
int flag = 0;
if(node[0].dir == 1)
{
for(int i = 1; i < n; i ++)
{
if((node[i].pos > node[0].pos) && (node[i].dir == -1))
{
flag = 1;
ans ++;
}
}
for(int i = 1; i < n; i ++)
{
if((node[i].pos < node[0].pos) && (node[i].dir == 1) && flag)
ans ++;
}
}
else
{
for(int i = 1; i < n; i ++)
{
if((node[i].pos < node[0].pos) && (node[i].dir == 1))
{
flag = 1;
ans ++;
}
}
for(int i = 1; i < n; i ++)
{
if((node[i].pos > node[0].pos) && (node[i].dir == -1) && flag)
ans ++;
}
}
printf("%d\n", ans);
return 0;
}