三和数 〜 横へな 2014.3.7 参考問題

問題

3つの数がある。いずれも正の整数。
これらの数のことを「三和数の元」と呼ぶ。
「三和数の元」から重複を許して1個〜3個 選び出す。選び出した数の合計となりうる数のことを「三和数」と呼ぶ。
例えば。
三和数の元が
1,10,100
の場合、三和数は
1,2,3,10,11,12,20,21,30,100,101,102,110,111,120,200,201,210,300
となる。
で。
3,11,12,102,111,120
のような具合に三和数の部分集合が与えられる。三和数の元を求めよ。

入力と出力

入力は
3,11,12,102,111,120
こんな感じ。
昇順に整列されていて、重複を含まない。

出力は、三和数の元を昇順で。
上記の例だと
1,10,100
を出力ればよい。
また、入力が
10,20,30,35,70
のような場合、三和数の元が一意に定まらない。この場合はそのことを示すために
many
を出力する。
逆に。
1,5,20,80
のように、条件に合う三和数の元が存在しないこともある。その場合は
none
のような出力をすること。

補足

サンプルデータ

# 入力 期待
0 3,11,12,102,111,120 1,10,100
1 10,20,30,35,70 many
2 1,5,20,80 none
3 1,2,3,4,5,6,7,8,9,10,11,12,13,14 many
4 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15 1,4,5
5 1,2,3,4,5,6,7,8,9,10,11,12,13,14,17 none
6 1,2,3,4,5,6,7,8,9,10,11,12,13,14,18 1,4,6
7 5,6,7,8,9,10,11,12,13,14,15,16 2,5,6
8 9,10,11,12,13,14,15,16,17,18,19 4,5,7
9 11,36,37,45,55,70,71 1,10,35
10 92,93,94,95,96,97,98,99 30,32,33
11 95,96,97,98,99,100 many
12 27,30,34,37,43,44,46,51,57 10,17,23
13 6,10,13,17,65,73,76,80 none
14 12,19,21,29,85 none
15 1,2,8,10,14,23,58,62,64 none
16 4,22,25,31,44,50,58,69,71,72,73,77 none
17 8,16,26,27,42,53,65,69,81,83,88,99 none
18 9,10,23,24,28,33,38,39,58,68,84 none
19 11,16,24,26,88 none
20 24,33,47,56,63,66,75,78,89,93 none
21 7,26,72,77 many
22 69,88,95,97 many
23 9,14,48,89 many
24 69,76,77,83 many
25 11,14,24 many
26 8,25,75,93 many
27 11,55,93,98,99 many
28 71,83,87 many
29 22,76,77,92 7,15,62
30 33,61,66,83,95 17,33,61
31 6,16,49,55,72 6,16,33
32 62,85,97,98 12,25,73
33 54,60,67,70,72 20,25,27
34 54,61,68,84,87 27,30,34
35 65,67,69,75,79,89,99 21,23,33
36 69,72,80,81,89 23,24,33
37 1,2,3 many

C/C++/Java 用のテストデータ