比赛 !信心赛 评测结果 AAAAAAAAAAAAAAAAAAAAAATTAAAAAAATAAAAAA
题目名称 《数列》 最终得分 91
用户昵称 终焉折枝 运行时间 20.431 s
代码语言 C++ 内存使用 4.00 MiB
提交时间 2026-01-17 10:57:16
显示代码纯文本
#include<iostream>
#include<algorithm>
using namespace std;

const int MAXN = 1e5 + 5;
int a[MAXN], n;
int b[MAXN];
bool f[MAXN];
int cnt[MAXN];

int main(){
	freopen("arrayy.in", "r", stdin);
	freopen("arrayy.out", "w", stdout);
	cin >> n;
    for(int i = 1;i <= n;i ++){
        cin >> a[i];
        if(a[i] < MAXN){
        	cnt[a[i]] ++;
		}
    }
    sort(a + 1, a + n + 1);
    int tot = 0;
    for(int i = 1;i <= n;i ++){
        if(i == 1 || a[i] != a[i - 1]){
        	b[++ tot] = a[i];
		}
    }
    for(int i = 1;i <= tot;i ++){
        f[b[i]] = 1;
    }
    int maxx = b[tot];
    for(int i = tot;i >= 1;i --){
        for(int j = b[i];j <= maxx;j ++){
            if(f[j]){
                f[j % b[i]] = 1;
            }
        }
    }
    int ans = 0;
    for(int i = b[1] - 1;i >= 0;i --){
        if(f[i]){
            ans = i;
            break;
        }
    }
    if(cnt[b[1]] == 1) ans = max(ans, b[1]);
    cout << ans << '\n';
    return 0;
}