Start: Jun, 28, 2019 08:42:00
2019杭州师范大学第一届程序设计竞赛新生赛
End: Jun, 28, 2019 11:42:00
Time elapsed:
Time remaining:

Problem_ID: H
Result: Accepted
Time: 60ms
Memory: 2496kB
In contest: 1276

#include<cstdio>
#include<iostream>
#include<vector>
#include<queue>
#include<map>
#include<cstdlib>
#include<cstring>
#include<string>
#include<cmath>
#include<algorithm>
using namespace std;
int ax[100010];
int bn[100010];
int main (void){
	int n;
	scanf("%d",&n);
	for(int i=0;i<n;i++){
		scanf("%d",&ax[i]);
	}
	sort(ax,ax+n);
	int maxx=ax[n-1];
	bn[0]=ax[0];
	int cnt=1;
	for(int i=1;i<n;i++){
		if(ax[i]!=ax[i-1]){
			bn[cnt++]=ax[i];
		}
	}
	int gg=cnt-1;
	if(gg==0){
		printf("%d\n",bn[0]);
		return 0;
	}
	while(1){
		if(gg==1) {
			printf("%d\n",maxx);
			break;
		}
		int tt=1;
		for(int i=0;i<gg;i++){
			if(bn[gg]%bn[i]!=0){
				tt=0;
			}
		}
		if(tt==0){
			int summ=bn[gg];
			for(int i=gg-1;i>=0;i++){
				if(bn[gg]%bn[i]!=0){
					summ+=bn[i];
					break;
				}
			}
			printf("%d\n",max(maxx,summ));
			break;
		}
		else{
			gg--;
			tt=1;
		}
	}
}