只对了1,2,8三个,求大佬指点修改
#include<bits/stdc++.h>
using namespace std;
int l[200010]={0};
int d[6]={0};
int main()
{
int max1=0,max2=0,max3=0,n,m1,m2,m3,sum,max4,m4;
cin>>n;
for(int i=0;i<n;i++)
{
cin>>l[i];
}
sort(l,l+(n-1));
max1=*max_element(l,l+n);
m1=find(l,l+n, max1)-l;
l[m1]=0;
max2=*max_element(l,l+n);
m2=find(l,l+n,max2)-l;
l[m2]=0;
max3=*max_element(l,l+n);
m3=find(l,l+n,max3)-l;
l[m3]=0;
d[0]=max1%max2;
d[1]=max1%max3;
d[2]=max2%max1;
d[3]=max2%max3;
d[4]=max3%max1;
d[5]=max3%max2;
sort(d,d+5);
for(int i=0;i<=5;i++)
{
if(d[i]>0)
{
sum++;
}
}
if(sum<2)
{
cout<<-1;
return 0;
}
max4=*max_element(d,d+5);
m4=find(d,d+5, max4)-d;
d[m4]=0;
cout<<*max_element(d,d+5);
return 0;
}