编程语言
首页 > 编程语言> > CCF CSP201612-1中间数(c++100)

CCF CSP201612-1中间数(c++100)

作者:互联网

CCF CSP201612-1中间数

在这里插入图片描述

#include<iostream>
#include<algorithm>
using namespace std;
const int maxn = 1010;
int arr[maxn];
int main(){
	int n;
	cin>>n;
	bool flag = false;
	for(int i = 0; i < n; i++){
		int num;
		cin>>num;
		arr[i] = num;
	}
	sort(arr,arr+n);
	if(n%2==1){
		int count1 = 0, count2 = 0;
		for(int i = n/2-1; i >= 0; i--){
			if(arr[i] == arr[n/2]) count1++;
			else break;
		}
		for(int i = n/2+1; i < n; i++){
			if(arr[i] == arr[n/2]) count2++;
			else break;
		}
		if(count1 == count2) cout<<arr[n/2];
		else cout<<"-1";
		cout<<endl;
	}
	else{
		if(arr[n/2-1] != arr[n/2]) cout<<"-1"<<endl;
		else{
			int count1 = 0, count2 = 0;
			for(int i = n/2-2; i >= 0; i--){
				if(arr[i] == arr[n/2]) count1++;
				else break;
			}
			for(int i = n/2+1; i < n; i++){
				if(arr[i] == arr[n/2]) count2++;
				else break;
			}
			if(count1 == count2) cout<<arr[n/2];
			else cout<<"-1";
			cout<<endl;
		}
	}
	return 0;
}

标签:arr,count2,int,else,++,count1,CSP201612,100,CCF
来源: https://blog.csdn.net/qq_44091681/article/details/110280757