描述
Given S, a set of integers, find the largest d such that a + b + c = d where a, b, c, and d are distinct elements of S.
输入
Several S, each consisting of a line containing an integer 1 <= n <= 1000 indicating the number of elements in S, followed by the elements of S, one per line. Each element of S is a distinct integer between -536870912 and +536870911 inclusive. The last line of input contains 0.
输出
For each S, a single line containing d, or a single line containing “”no solution””.
样例输入
5
2
3
5
7
12
5
2
16
64
256
1024
0
样例输出
12
no solution
来源
Waterloo local 2001.06.02
Solution
这题是枚举中的中途相遇法
a+b+c=d转化为a+b=d-c 然后对其一边哈希
看图。。。说多了都是泪。。
1.TLE 用了map
2.WA 改成hash没判重
3.WA 不知道哪里错 改成二分继续错
4.WA 知道了要判重 代码打错w和ww搞混
5.TLE 在insert的时候不必要的去重浪费时间
1 |
|