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: 75ms
Memory: 2500kB
In contest: 1276

#include<bits/stdc++.h>
using namespace std;
const int maxn=1e5+5;
const int inf=0x3f3f3f3f;
#define ll long long

int a[maxn],b[maxn];
int n;

int main()
{
	scanf("%d",&n);
	for(int i=1;i<=n;i++)
	{
		scanf("%lld",&a[i]);
	}
	if(n==1)	
	{
		printf("%lld\n",a[1]);
		return 0;
	}
	sort(a+1,a+1+n);
	int tot=1;
	b[1]=a[1];
	for(int i=2;i<=n;i++)
	{
		if(a[i]!=a[i-1])	b[++tot]=a[i];
	}
	memcpy(a,b,sizeof b);
	n=tot;
	int p=0;
	for(int i=1;i<=n;i++)
	{
		if(a[i]!=1)
		{
			p=i;
			break;
		}
	}
	if(p==0)
	{
		printf("1\n");
	}
	else if(p==n)
	{
		printf("%lld\n",a[n]);
	}
	else 
	{
		int f=1;
		for(int i=n-1;i>=p;i--)
		{
			if(a[n]%a[i]!=0)
			{
				printf("%lld\n",a[n]+a[i]);
				f=0;
				break;
			}	
		}
		if(f==1)	printf("%lld\n",a[n]);
	}
}