如下:
#include<bits/stdc++.h>
using namespace std;
const int MAXN = 2e5 + 7;
int n;
int a[MAXN];
int main(){
scanf("%d",&n);
for(int i = 1;i <= n;i++){
scanf("%d",a + i);
}
sort(a + 1,a + n + 1);
int i = n - 1;
while(a[i] == a[n]){
i--;
}
int mx = a[i];
int ans = -1;
for(;i >= 1;i--){
if(a[i] != mx){
ans = a[i];
break;
}
}
if(ans != -1){
for(int j = 1;j <= n;j++){
if(a[n] % a[j] > ans){
ans = a[n] % a[j];
break;
}
}
}
printf("%d",ans);
return 0;
}
代码能过
但是 hack:
2
1 3
正解是 0
输出 −1