50pts求调
查看原帖
50pts求调
1076971
anke2017楼主2024/12/4 17:55

感觉跟题解没什么不一样的,但是只对 1,2,3,4,61,2,3,4,6 五个点。

#include<bits/stdc++.h>

using namespace std;

#define int long long
constexpr int mod=1e9+9;

int x[200001];

signed main()
{
	int n,k;cin>>n>>k;
	for(int i=1;i<=n;i++)cin>>x[i];
	sort(x+1,x+1+n);
	__int128 ans=1;
	int l=1,r=n;
	int f=1;
	if(k&1)ans*=x[n],r--,k++,f=x[n]>0?1:-1;
	while(k-=2)
	{
		if(x[l]*x[l+1]*f<x[r]*x[r-1]*f)
		     ans=ans*x[r]%mod*x[r-1]%mod,r-=2;
		else ans=ans*x[l]%mod*x[l+1]%mod,l+=2;
	}
	cout<<(long long)(ans%mod);
	return 0;
}
2024/12/4 17:55
加载中...