先按左右顺序排列。 如果蚂蚁向左走,以它为原点,那么如果左边有向右走的蚂蚁,那只蚂蚁就一定会感冒。而一旦被感染,则右面的向左边走的蚂蚁也会与之前被感染的接触,也会被感染。 向右走同理。如果不明白请评论区dd。 #include #include #include #include using namespace std; int cmp(int x,int y){ return abs(x)<abs(y); } int main(){ int n; int a[100]; memset(a,0,sizeof(a)); scanf("%d",&n); for(int i=0;i<n;i++){ scanf("%d",&a[i]); } int s=a[0]; sort(a,a+n,cmp); int cnt=0; int zuo=0; int you=0; for(int i=0;i<n;i++){ if(abs(a[i])0) zuo++; } if(abs(a[i])>abs(s)){ if(a[i]0){ if(you==0) cnt=1; else cnt=1+zuo+you; } else{ if(zuo==0) cnt=1; else cnt=1+zuo+you; } printf("%d",cnt); return 0; }
0.0分
1 人评分