AT_ARC095D 题解

洛谷:题目传送门

AT:题目传送门

思路

众所周知,Cmn=m!n!(mn)!C_m^n=\dfrac{m!}{n!(m-n)!}

通过找规律,发现对于数列中的数,最大的数作为 mm,最接近 m2\frac{m}{2} 的数作为 nnCmnC_m^n 最大。

代码实现

sort\texttt{sort} 一下,然后枚举找出最接近 m2\frac{m}{2} 的数。

#include<iostream>
#include<algorithm>
using namespace std;
int a[100001],n,t;
double minn=2147000000,mid;
int main(){
	cin>>n;
	for(int i=1;i<=n;i++)cin>>a[i];
	sort(a+1,a+n+1);
	mid=a[n]*1.0/2;
	for(int i=1;i<=n;i++){
		if(a[i]<mid){
			if(mid-a[i]<minn){
				t=a[i];
				minn=mid-a[i];
			}
		}
		else{
			if(a[i]-mid<minn){
				t=a[i];
				minn=a[i]-mid;
			}
		}
	}
	cout<<a[n]<<' '<<t;
	return 0;
}

提示:如果洛谷交不上去可以尝试去原网站提交。

posted @ 2023-07-30 15:43  Weslie_qwq  阅读(28)  评论(0)    收藏  举报  来源