首页 > 其他分享 >1211. 蚂蚁感冒

1211. 蚂蚁感冒

时间:2022-09-21 21:36:33浏览次数:81  
标签:1211 蚂蚁 int 感冒 abs right && include left

https://www.acwing.com/problem/content/description/1213/

脑经急转弯类型,主要要想出来的是两两相遇可以看成是小球无损碰撞,即[ 穿过 ],因为前后两者之间的状态一致

分析后总结,若不满足感染,则仅有初始蚂蚁1只

若满足感染条件则为left+right+1
(当然也可以一一枚举符合条件的ans++,只不过不太优雅)

#include<iostream>
#include<algorithm>
#include<cstdio>
using namespace std;
int n;
const int N = 55;
int a[N];
//这里有个坑点,不能把right,left定义为全局变量,这两个关键字有输出的格式调整作用
//直接定义为全局变量会有歧义
int main()
{
    cin >> n;
    int left=0,right=0;
    for(int i=0;i<n;i++)
        scanf("%d",&a[i]);
    for(int i=1;i<n;i++)
    {
        if( abs(a[i]) > abs(a[0]) && a[i] < 0)right++;
        else if(abs(a[i]) < abs(a[0]) && a[i]>0   )left++;
    }
    if(a[0]>0 && right==0 || a[0]<0  && left==0 ) cout << 1 << endl;
    else cout << right + left + 1 << endl;
    return 0;
}

 

标签:1211,蚂蚁,int,感冒,abs,right,&&,include,left
From: https://www.cnblogs.com/lxl-233/p/16717189.html

相关文章