#include<stdio.h>
#define INF -0x3f3f3f3f
int n;
int d[1000+16];
void qsort(int l,int r)//快排
{
int i,j,x;
if(l<r)
{
i=l;j=r;x=d[i];
while(i<j)
{
while(i<j&&d[j]>=x)
j--;
if(i<j)
d[i++]=d[j];
while(i<j&&d[i]<x)
i++;
if(i<j)
d[j--]=d[i];
}
d[i]=x;
qsort(l,i-1);
qsort(i+1,r);
}
}
int main(void)
{
int ans,l,r,i,j,sum;
while(~scanf("%d",&n)&&n)
{
for(i=0;i<n;i++)
scanf("%d",&d[i]);
qsort(0,n-1);
ans=INF;
for(i=n-1;i>=0;i--)//枚举d-c
{
for(j=n-1;j>=0;j--)
{
if(i==j)
continue;
sum=d[i]-d[j];
l=0;r=j-1;
while(l<r)//查找a+b
{
if(d[l]+d[r]==sum)
{
ans=d[i];
break;
}
if(d[l]+d[r]>sum)
r--;
else
l++;
}
if(ans!=INF)
break;
}
if(ans!=INF)
break;
}
if(ans==INF)
printf("no solution\n");
else
printf("%d\n",ans);
}
return 0;
}
poj 2549 Sumsets
最新推荐文章于 2018-07-29 19:57:41 发布