思路是借鉴网上大佬的。代码是自己写的。注意那两个特殊情况。
感觉不需要结构体啊。 标记一下第一个数的位置。然后对他们的绝对值sort一下。
自己多推几遍找着规律就行。
主要是不要想着蚂蚁拐弯。就想着它一直走就行。想明白就完事了。
满分代码:
#include <iostream>
#include <cstring>
#include <cmath>
#include <cstdio>
#include <algorithm>
using namespace std;
bool cmp(int a,int b)
{
return abs(a)<abs(b);
}
int main()
{
int n;
int a[101];
cin>>n;
int cntf=0;
int cntz=0;
for(int i=0;i<n;i++)
cin>>a[i];
int fir=a[0];
sort(a,a+n,cmp);
int index=0;
for(int i=0;i<n;i++)
{
if(a[i]==fir)
index=i;
}
// cout<<index<<endl;
for(int i=0;i<index;i++)
if(a[i]>0) cntz++;
// cout<<cntz<<endl;
for(int i=index+1;i<n;i++)
if(a[i]<0) cntf++;
// cout<<cntf<<endl;
if(cntf==0&&fir>0)
cout<<1<<endl;
else if(cntz==0&&fir<0)
cout<<1<<endl;
else
cout<<cntz+cntf+1<<endl;
}