' P '

whatever I will forget

三角形の成立条件

全く持って忘れてましたよね。。

参考

integraldx.info

a,b,cの三辺の三角形の場合、 a < b + c, b < a + c, c < a + bが成立していればOK。
かつ、もしaの辺が一番長いとわかっている場合は、a < b + cのみ確認を行えばいいらしい。

問題

atcoder.jp

提出したコードは下記のような感じで全部の条件を調べ倒しましたが、 Integer型でArrayを作成し、Arrays.sort(l, Collections.reverseOrder())を行って
最初のindexだけ三角形の成立条件に当てはめればかっこいいですね。

        int cnt = 0;
        for(int i=0; i<n; i++) {
            for(int j=i; j<n; j++) {
                if(l[i] == l[j]) continue;
                for(int k=j; k<n; k++) {
                    if((l[i] != l[k] && l[j] != l[k]) &&
                        l[i] < l[j] + l[k] && l[j] < l[i] + l[k] && l[k] < l[i] + l[j]) {
                        cnt++;
                        //System.out.println("i: " + l[i] + " j: " + l[j] + " k: " + l[k]);
                    }
                }
            }
        }