天天看點

藍橋杯 第五屆省B 螞蟻感冒

思路是借鑒網上大佬的。代碼是自己寫的。注意那兩個特殊情況。

感覺不需要結構體啊。 标記一下第一個數的位置。然後對他們的絕對值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;
}
           
lq