srupのメモ帳

競プロで解いた問題や勉強したことを記録していくメモ帳

SRM 697 div2 easy TriangleMaking

問題

問題概要

3つの辺の長さが与えられる。それを使って、最も辺の長さの合計が長い三角形の辺の長さを求めさい。

解法

三角形の成立条件を使えばいい。成立条件を満たすのなら3辺の和そのものが答えとなり、条件を満たさないなら、最大辺を短くして、ギリギリ条件を満たす長さにすればいい。

ミス

SRM 1完

コード

class TriangleMaking {
public:
    int maxPerimeter(int a, int b, int c) {
        int maxx = max(a, max(b, c));
        int minn = min(a, min(b, c));
        int midd = a + b + c - maxx - minn;
        int ans = 0;
        if(minn + midd <= max){
            ans = (minn + midd) * 2 - 1;
        }else{
            ans = minn + midd + maxx;
        }
        return ans;
    }
};