[백준6064] 카잉 달력 (C++)

유후·2022년 5월 14일
0

백준

목록 보기
27/66

BOJ 바로가기

날짜 계산 문제와 비슷하다. 두 문제 모두 브루트포스를 이용해 해결할 수 있지만, 카잉 달력 문제는 시간초과를 고려해서 조금 다른 방식으로 풀어야 한다.

풀이

num을 x로 초기화하고 m을 계속해서 더해주는 방식으로 원하는 답이 나올 때까지 검사했다. 답을 구하지 못하면 -1을 반환하도록 만들었다.

#include <iostream>
using namespace std;

int main()
{
	ios_base::sync_with_stdio(false);
	cin.tie(nullptr);
	int m, n, x, y;
	int t; cin >> t;
	while (t--)
	{
		cin >> m; cin >> n; cin >> x; cin >> y;
		int num;
		for (num = x; num <= m * n; num += m)
		{
			if (((num - x) % m == 0) && ((num - y) % n == 0))
			{
				cout << num << '\n';
				break;
			}
		}
		if (num > m * n)
			cout << "-1" << '\n';
	}
}
profile
이것저것 공부하는 대학생

0개의 댓글