두 팀이 득점한 점수의 합과 차가 주어졌을 때, 두 팀의 성적을 출력한다.
두 팀의 성적은 a, b라 하고 합을 S, 차를 D 라고 하면 $$
\begin{cases}
a+b = S \\[2ex]
a-b = D & \text{(a $\ge$ b)}
\end{cases}$$ 이다.
다시 말하면, a = (S+D)/2, b = (S-D)/2 이다.
두 팀이 서로 경기를 했으니 a, b 는 짝수일수밖에 없고, 음수가 나와도 잘못된 입력이라는 의미이다.
#include <bits/stdc++.h> using namespace std; int main(){ int s, d; scanf("%d %d", &s, &d); if((s+d)%2) return puts("-1"), 0; int a = (s+d)/2, b = (s-d)/2; if(a < 0 || b < 0) return puts("-1"), 0; printf("%d %d", max(a, b), min(a, b)); return 0; }
댓글 없음:
댓글 쓰기