このディレクトリの索引
#  三角形
#  n本の棒があります。棒iの長さはaiです。あなたは、それらの棒から3本選んでできるだけ
#  周長の長い三角形を作ろうと考えています。最大の周長を求めなさい。ただし、三角形が
#  作れない際には0を答えとしなさい。

'n本の棒があります。棒iの長さはaiです。あなたは、それらの棒から3本選んでできるだけ周長の長い三角形を作ろうと考えています。最大の周長を求めなさい。ただし、三角形が作れない際には0を答えとしなさい。'(_棒の長さならび,_最大の周長) :-
        findmax(_周長,(
                   組合せ(_棒の長さならび,3,[_辺の一,_辺の二,_辺の三]),
                   三角形を構成できる(_辺の一,_辺の二,_辺の三),
                   sum(L,_周長)),
                _最大の周長).

三角形を構成できる(_辺の一,_辺の二,_辺の三) :-
        _辺の一 < _辺の二 + _辺の三,
        _辺の二 < _辺の一 + _辺の三,
        _辺の三 < _辺の一 + _辺の二.