Problem:
問題1

　三角形の形は辺の長さで決まる．
順番に３つの正整数が与えられたとき，
辺の長さがそれらの値と一致する三角形が存在するかどうかを調べ，
存在するなら鋭角三角形，直角三角形，鈍角三角形のいずれかを判定し，
次の入力へ進む．
三角形が存在しないとき，
それまでに入力された，三角形，直角三角形，鋭角三角形，鈍角三角形の
個数を空白で区切って出力し，
それ以降の入力は無視して終了する．
入力の中には必ず三角形が存在しないようなものがある
と仮定してよい.
入力の行数は判らないが各行には３つの正整数が空白で区切って書かれている．
ただし，各整数は100 以下とする.

出力ファイルにおいては，
出力の最後の行にも改行コードを入れること．

入出力例

入力例１

3 4 5
2 1 2
6 3 4
1 1 1
1 2 3

4 1 2 1

入力例２

3 4 5
2 1 2
6 3 4
1 2 3
1 1 1

出力例２

3 1 1 1

問題文と自動審判に使われるデータは、情報オリンピック日本委員会が作成し公開している問題文と採点用テストデータです。

Solution in Ruby (judge verdict: Accepted)


def type(a, b, c) # a, b, c is sorted
    if a + b <= c then
        return -1
    elsif a * a + b * b == c * c then
        return 0
    elsif a * a + b * b > c * c then
        return 1
    else
        return 2
    end
end

t0 = 0
t1 = 0
t2 = 0

while true do
    
    a, b, c = gets.split.map(&:to_i)
    
    if a > b then
        t = a
        a = b
        b = t
    end
    
    if a > c then
        t = a
        a = c
        c = t
    end
    
    if b > c then
        t = b
        b = c
        c = t
    end
    
    ttype = type(a, b, c)
    
    if ttype == -1 then
        break
    elsif ttype == 0 then
        t0 += 1
    elsif ttype== 1 then
        t1 += 1
    else
        t2 += 1
    end
end

puts "#{t0 + t1 + t2} #{t0} #{t1} #{t2}"