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