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: 62ms
Memory: 4068kB
In contest: 1276

#include<bits/stdc++.h>
#define rep(i,x,y) for(int i=x;i<=y;++i)
#define dep(i,x,y) for(int i=y;i>=x;--i)
using namespace std;
typedef long long ll;
int n,m,a[301010],w[301010],ans=0;
int main()
{
	int an1,an2;
	scanf("%d",&n);
	rep(i,1,n) 
	   scanf("%d",&a[i]);
	sort(a+1,a+1+n);
	n=unique(a+1,a+1+n)-a-1;
	//printf("%d\n",n);
	dep(i,1,n)
	{
		ans=max(ans,a[i]);
		if(a[i]+a[i-1]<ans) break;
		dep(j,1,i-1)
		{
			if(a[i]%a[j]==0) continue;
			else {
				ans=max(ans,a[i]+a[j]);
				break;
			}
		}
//		ans=max(ans,a[i]);
//	    rep(j,2,sqrt(a[i]))
//		{
//			if(a[i]%j==0) 
//			{
//				w[a[i]/j]=1;
//				w[j]=1;
//			}
//		}	
//		dep(j,1,i-1)
//		   if(w[a[j]]==0) 
//		   {
//		   	ans=max(ans,a[j]+a[i]);break;
//		   }
//		rep(j,2,sqrt(a[i]))
//		{
//			if(a[i]%j==0) 
//			{
//				w[a[i]/j]=0;
//				w[j]=0;
//			}
//		}	
	}
	printf("%d\n",ans);
}