UVa 10125 - Sumsets(二)

2014-11-24 11:26:13 · 作者: · 浏览: 1
e(){
Node tmp;
ans = -2147483646;
for(int i=n-1; i>=0; --i){
for(int j=0; j long long t = S[i]-S[j] + ADD + ADD;
tmp.sum = t; tmp.a=i; tmp.b=j;
if(search(tmp)) {
ans = S[i]; return true;
}
}
}
return false;
}

int main(){
while(scanf("%d",&n), n){
for(int i=0; i

sort(S, S+n);
init_lookup_table();
for(int i=0; i for(int j=0; j sum[rear].sum = S[i]+ADD+S[j]+ADD;
sum[rear].a=i; sum[rear].b=j;
try_to_insert(rear);
++rear;
}
}
if(solve()) printf("%d\n", ans);
else printf("no solution\n");
}
return 0;
}


作者:shuangde800