문제 설명
짝수명의 사람이 원형으로 서있다. 각 사람의 번호는 1부터 시계방향으로 차례대로 부여한다. 각 사람은 서로 원의 중심 방향을 향해 바라보고 있으며, 반대편 사람을 지켜본다.

당신은 한 원에 몇명의 사람이 서있는지 모른다.(하지만 수는 반드시 짝수다.) 우리가 알고 있는 사실은 사람
Input
첫번째 줄에는 테스트 케이스의 수
각 테스트 케이스의 첫번째 줄에는 서로 다른 세 정수
Output
각 테스트케이스마다 이 사람들이 원형으로 서있는 상태에서
Example
input
7
6 2 4
2 3 1
2 4 10
5 3 4
1 3 2
2 5 4
4 3 2
output
8
-1
-1
-1
4
1
-1
문제 접근
사용한 알고리즘: 수학
걸린 시간 : 00:06
프로그래머가 알고리즘을 공부할 때 수학이 왜 필요한지를 깨닫게 해준 이번 문제 set중 하나이다. 나머지 하나는 다음 C번 문제이다.
일단 문제에서 강조하는 부분은 사람이 원형으로 서있다는 점이다. 만약
그리고
그렇다면 원이 안만들어지는 경우는 어떻게 생각하면 될까? 위에서 구한
이 두 식에서 나온 값중에서 하나는 문제의 답이고 하나는 문제의 답이 아니다. 이것을 어떻게 판단할까?
그렇다면
정답 코드
#include <iostream>
using namespace std;
int main() {
ios_base::sync_with_stdio(false); cin.tie(0); cout.tie(0);
int t; cin >> t;
while(t--){
int a, b, c; cin >> a >> b >> c;
int n = 2 * abs(a - b);
if(a > n || b > n || c > n){
cout << -1 << "\n";
continue;
}
cout << (c > n / 2 ? c - n / 2 : c + n / 2) << "\n";
}
return 0;
}
'알고리즘 > codeforces' 카테고리의 다른 글
Codeforces Round #739 (Div. 3)-D. Make a Power of Two (0) | 2021.12.19 |
---|---|
Codeforces Round #739 (Div. 3)-C. Infinity Table (0) | 2021.12.19 |
Codeforces Round #739 (Div. 3)-A. Dislike of Threes (0) | 2021.12.19 |
Codeforces Round #741 (Div. 2)-C. Rings (0) | 2021.12.19 |
Codeforces Round #741 (Div. 2)-B. Scenes From a Memory (0) | 2021.12.19 |