백준/실버
[백준 1402번] 아무도이문제는A번난이도인것같다 (C++)
게임개발기원
2024. 2. 5. 14:57
문제링크 : https://www.acmicpc.net/problem/1402
1402번: 아무래도이문제는A번난이도인것같다
첫째 줄에는 테스트 케이스의 개수 T(1 ≤ T ≤ 100)이 주어진다. 테스트 케이스마다 두 정수 A, B(-231 ≤ A, B ≤ 231-1)가 주어진다.
www.acmicpc.net
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
typedef pair<int, int> pii;
const int MAX = 987654321;
int T, A, B;
int main()
{
ios_base::sync_with_stdio(0);
cin.tie(0);
cin >> T;
while(T--)
{
cin >> A >> B;
cout << "yes" << "\n"; //모든 경우 가능
}
return 0;
}
처음에는 굉장히 복잡하고 노가다로 풀어야하나 고민하다가 아무리 생각해도 그건 아닌 것같아서 찾아보니 상당히 신기했던 문제이다.
A에 곱해주는걸 1또는 -1이 가능하다는 것을 이용하여 결국 모든 수에 대해 A'로 변환이 가능하다.
따라서 입력받은 수에 상관없이 무조건 yes이다.
A = A*1
A' = A+1
-> 1의 갯수를 조절하여 A보다 큰 모든 수에 대해 변환 가능
(A+1, A+1+1, A+1+1+1...)
A = A*(-1)*(-1)*1
A' = A-1-1+1
= A-1
-> (-1),(-1),1 3쌍의 조합의 갯수를 조절하여 A보다 작은 모든 수에 대해 변환 가능
(A-1, A-1-1, A-1-1-1...)