Codeforces Round #750 (Div. 2)-A. Luntik and Concerts

falconlee236

·

2021. 11. 28. 23:09

반응형

문제 설명

루나는 콘서트장에서 노래를 부르기로 결정했다. 루나는 1분짜리 노래 $a$개, 2분짜리 노래 $b$개, 3분짜리 노래 $c$개가 있다. 이 모든 노래를 두 콘서트에 각각 분배하고 싶다. 모든 노래는 무조건 두 콘서트중 하나에서 불러야 한다.

루나는 각 콘서트의 총 시간차를 가능한 한 최소화하고 싶다. 콘서트의 총 시간은 그 콘서트에서 부르기로한 모든 노래의 총 시간의 합이다.

각 콘서트의 최소 시간차를 출력해보자.

Input
첫번째 줄에는 테스트 케이스의 개수를 나타내는 정수 $t (1 \le t \le 1000)$ 이 주어진다.

각 테스트케이스의 첫번째 줄에는 각각 1분짜리 노래, 2분짜리 노래, 3분짜리노래를 의미하는 세 정수 $a, b, c (1 \le a, b, c \le 10^9)$ 가 주어진다.

Output
각 테스트케이스마다 두 콘서트 공연시간의 최소 시간차를 출력하자.

Example
input
4
1 1 1
2 1 3
5 5 5
1 1 2

output
0
1
0
1

문제 접근

사용한 알고리즘: 수학
걸린 시간 : 00:02
그냥 신뢰의 도약을 하면 풀리는 문제이다. 코드포스 A번 문제에는 이런 유형이 많이 나오니까 신뢰의 도약 하는 법을 알아두자?

모든 노래의 총 시간 $a + 2 \cdot b + 3 \cdot c = s$ 라고 하자. 이 값이 절반으로 나누어진다면 최소 시간차는 0이 될 것이고, 이 값을 2로 나눌 때 나머지가 1이 된다면 최소 시간차는 1이 될 것이다.

정답 코드

#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;
        cout << ((a + 2*b + 3*c)% 2 == 0 ? 0 : 1) << "\n";
    }
    return 0;
}
반응형