2016년 3월 11일 금요일

4299 - AFC 윔블던

https://www.acmicpc.net/problem/4299

두 팀이 득점한 점수의 합과 차가 주어졌을 때, 두 팀의 성적을 출력한다.

두 팀의 성적은 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;
}

댓글 없음:

게시글 목록