C_C++
C++ - 백준 5691 평균 중앙값 문제
ncode
2025. 1. 30. 16:53
728x90
반응형
/* 백준 5691 평균 중앙값 문제
* 문제
세 정수 A, B, C의 평균은 (A+B+C)/3이다. 세 정수의 중앙값은 수의 크기가 증가하는 순서로
정렬했을 때, 가운데 있는 값이다.
두 정수 A와 B가 주어진다. 이때, A, B, C의 평균과 중앙값을 같게 만드는 가장 작은 정수 C를
찾는 프로그램을 작성하시오.
* 입력
입력은 여러 개의 테스트 케이스로 이루어져 있다. 각 테스트 케이스는 한 줄로 이루어져 있고,
A와 B가 주어진다. (1 ≤ A ≤ B ≤ 109) 입력의 마지막 줄에는 0이 두 개 주어진다.
* 출력
각 테스트 케이스에 대한 정답을 한 줄에 하나씩 출력한다.
* 예제 입력 1
1 2
6 10
1 1000000000
0 0
* 예제 출력 1
0
2
-999999998
*/
/* 풀이
1 ≤ A ≤ B ≤ 109 이므로, C 의 위치는
i) C ≤ A ≤ B
ii) A ≤ C ≤ B
iii) A ≤ B ≤ C
가 될 수 있는데 가장 작은 정수를 구하는 것이므로 i) 의 경우가 가장 작은 정수를 구할 수 있다.
이 경우, (C + A + B) / 3 = A 이므로 C = 2A - B 가 된다.
*/
#include <iostream>
using std::cin, std::cout;
int main() {
while (true) {
int a, b, c;
cin >> a >> b;
if (a == 0 && b == 0) {
break;
}
c = 2 * a - b;
cout << c << '\n';
}
}
728x90
반응형