求助
查看原帖
求助
371927
REAL_曼巴楼主2020/8/20 08:43

记录

#include <algorithm>
#include <bitset>
#include <cctype>
#include <cerrno>
#include <clocale>
#include <cmath>
#include <complex>
#include <cstdio>
#include <cstdlib>
#include <cstring>
#include <ctime>
#include <deque>
#include <exception>
#include <fstream>
#include <functional>
#include <limits>
#include <list>
#include <map>
#include <iomanip>
#include <ios>
#include <iosfwd>
#include <iostream>
#include <istream>
#include <ostream>
#include <queue>
#include <set>
#include <sstream>
#include <stack>
#include <stdexcept>
#include <streambuf>
#include <string>
#include <utility>
#include <vector>
#include <cwchar>
#include <cwctype>
using namespace std;
int a[100001],n,vis[200001],vis1[200001];
int main(){
    cin>>n;
    for(int i=1;i<=n;++i){
        cin>>a[i];
    }
    int y=1;
    for(int i=1;i<=n-1;++i){
        for(int j=i+1;j<=n;++j){
            vis[y]=max(a[i],a[j])%min(a[i],a[j]);
            y++;
        }
    }
    for(int i=1;i<=n-1;++i){
        for(int j=i+1;j<=n;++j){
            if(vis[i]==vis[j]){
                vis[i]=-1;
            }
        }
    }
    int maxn=-1;
    for(int i=1;i<=n;++i){
        if(vis[i]==-1) continue;
        else
            if(vis[i]>maxn) maxn=vis[i];
    }
    int o=1;
    for(int i=1;i<=n;++i){
        if(vis[i]==maxn) vis[i]=-1;
        if(vis[i]==-1) continue;
        else {
            vis1[o]=vis[i];
            o++;
        }
    }
    if(o<=2) {
        cout<<"-1";
        return 0;
    }
    o--;
    int maxnn=-1;
    for(int i=1;i<=o;++i){
        if(vis1[i]>maxn) maxnn=vis1[i];
    }
    cout<<maxnn;
    return 0;
}

真的写吐了,求大佬查错!

2020/8/20 08:43
加载中...