1 solutions

  • 0
    @ 2025-4-18 17:57:56
    #include<bits/stdc++.h>
    using namespace std;
    typedef int itn;
    int n,ans;
    int a[1145141];
    int main(){
        cin>>n;
        for(int i=1;i<=n;i++) cin>>a[i];
        sort(a+1,a+n+1);
        n=unique(a+1,a+n+1)-a-1;
        for(int i=1;i<=n;i++){
            int k=lower_bound(a+1,a+1+i,a[i]/2+1)-a;
            int maxx=a[i]%a[k];
            ans=max(ans,a[i]%a[k]);
            for(int j=k-1;j>=1;j--){
                ans=max(a[i]%a[j],ans);
                if(maxx==-1) maxx=a[i]%a[j];
                else if(a[j]<=maxx) break;
                maxx=max(maxx,a[i]%a[j]);
            }
        }cout<<ans;
        return 0;
    }
    
    • 1

    Information

    ID
    321
    Time
    1000ms
    Memory
    256MiB
    Difficulty
    8
    Tags
    (None)
    # Submissions
    21
    Accepted
    6
    Uploaded By