CF1064A Make a triangle! 题解
Content
有三条长度分别为 \(a,b,c\) 的线段。你可以在一个单位时间内将一条线段的长度增加 \(1\),试求出能使这三条线段组成一个三角形的最短时间。
数据范围:\(1\leqslant a,b,c\leqslant 100\)。
Solution
将这三个线段按照长度从小到大排序,设排序后的三条线段的长度依次为 \(x_1,x_2,x_3\),然后判断是否有 \(x_1+x_2>x_3\),是的话就直接可以组成一个三角形,否则需要 \(x_3-(x_1+x_2)+1\) 个单位的时间才能使 \(x_1+x_2>x_3\)(注意不是 \(\geqslant\))。
Code
int a[4], ans;
int main() {
getint(a[1]), getint(a[2]), getint(a[3]);
sort(a + 1, a + 4);
writeint(ans = max(a[3] - (a[1] + a[2]) + 1, 0));
return 0;
}