专栏文章
题解:P14566 【MX-S12-T1】取模
P14566题解参与者 6已保存评论 9
文章操作
快速查看文章及其快照的属性,并进行相关操作。
- 当前评论
- 9 条
- 当前快照
- 1 份
- 快照标识符
- @min32b9q
- 此快照首次捕获于
- 2025/12/01 19:46 3 个月前
- 此快照最后确认于
- 2025/12/01 19:46 3 个月前
P14566 题解
思路
以下令 为序列 中的严格次大值, 为最大值, 为最小值。
-
当 时,答案为 。
-
当 时,取 最优,答案为 。(在 的前提下满足上式。容易发现 的时候这种情况一定不优。)
-
当 时,答案一定小于 ,即小于第二种情况。
所以答案为 。
特别的,当序列中所有元素均相等(没有严格次大值)时,答案为 。
代码
CPP#include<bits/stdc++.h>
#define int long long
using namespace std;
int a[214514];
main(){
// freopen("mod4.in","r",stdin);
// freopen("mod4.out","w",stdout);
int t;
cin>>t;
while(t--){
int n;
cin>>n;
for(int i=1;i<=n;i++)cin>>a[i];
sort(a+1,a+n+1);
int l=n-1;
a[0]=-1;
while(a[l]==a[n])l--;
if(l==0)cout<<0;
else cout<<max(a[l],a[n]-a[1])<<"\n";
}
return 0;
}
相关推荐
评论
共 9 条评论,欢迎与作者交流。
正在加载评论...