## Algorithm

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. Input 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’. Output For each S, a single line containing d, or a single line containing ‘no solution’.

Sample Input 5 2 3 5 7 12 5 2 16 64 256 1024 0

Sample Output 12 no solution

## Code Examples

### #1 Code Example with C Programming

```Code - C Programming```

`````` #include <bits/stdc++.h>

using namespace std;

int main()
{
int n,v;
while(cin >> n, n){
bool found = false;
set < long long> nums;
for(int i=0;i < n;i++){
cin >> v;
nums.insert(v);
}
for(auto d=nums.rbegin();d!=nums.rend() && !found;d++)
for(auto b=nums.rbegin();b!=nums.rend() && !found;b++)
for(auto c=next(b);c!=nums.rend() && !found;c++){
int a = *d-*b-*c;
if(d == b || d == c) continue;
if(a == *d || a == *b || a == *c) continue;
if(nums.count(a)) {
cout << *d << endl;
found = true;
}
}
if(!found) cout << "no solution" << endl;
}
}``````
Copy The Code &

Input

cmd
5
2
3
5
7
12
5
2
16
64
256
1024
0

Output

cmd
12
no solution