BOJ 19572 가뭄(Small)
사용한 알고리즘
- 수학
알고리즘 설명
\(d_1 = a + b,\) \(d_2 = a + c,\) \(d_3 = b + c\)
\(a = \frac{d_1+d_2-d_3}{2},\) \(b = \frac{d_1+d_3-d_2}{2},\) \(c = \frac{d_2+d_3-d_1}{2}\)
- 모든 a, b, c 값이 0보다 큰 값이어야 한다.
- 여기서 2번째 자리에서 반올림하기 때문에 0.05 미만이면 0이다.
풀이
// baekjoon 19572 yechan
#include <bits/stdc++.h>
using namespace std;
float d1,d2,d3;
float a, b, c;
int main() {
scanf("%f%f%f", &d1, &d2, &d3);
a = (d1+d2-d3)/2;
b = (d1-d2+d3)/2;
c = (-d1+d2+d3)/2;
if (a >= 0.05 && b >= 0.05 && c >= 0.05) printf("1\n%.1f %.1f %.1f\n", a, b, c);
else puts("-1");
return 0;
}