카테고리 없음

[C] 백준 - 6064번: 카잉 달력

C0MPAS 2024. 5. 30. 13:44

5월 30일(목) - 브루트포스(6064번)

https://www.acmicpc.net/problem/6064


최초 생각 정리

https://jh4995.tistory.com/146

 

정수론 및 조합론 - 1934번

2월 7일(화) - 정수론 및 조합론(1934번) 1934번: 최소공배수 두 자연수 A와 B에 대해서, A의 배수이면서 B의 배수인 자연수를 A와 B의 공배수라고 한다. 이런 공배수 중에서 가장 작은 수를 최소공배수

jh4995.tistory.com

- 최소공배수를 얻어내기 위해 "1934번: 최소공배수" 문제 풀이에서 사용했던 GCD 및 LCM 함수를 활용


문제점


풀이

#define _CRT_SECURE_NO_WARNINGS
#pragma warning(disable: 4996)

#include <stdio.h>

int GCD(int a, int b)
{
	if (b == 0)
	{
		return a;
	}
	else
	{
		return GCD(b, a % b);
	}
}

int LCM(int a, int b)
{
	return (a * b) / GCD(a, b);
}


int main(void)
{
	int test_case;
	scanf("%d", &test_case);

	int M, N, x, y;
	for (int i = 0; i < test_case; i++)
	{
		scanf("%d %d %d %d", &M, &N, &x, &y);

		int max_year = LCM(M, N);

		while (1)
		{
			if (x > max_year || ((x - 1) % N) + 1 == y)
			{
				break;
			}

			x = x + M;
		}

		if (x > max_year)
		{
			printf("-1\n");
		}
		else
		{
			printf("%d\n", x);
		}
	}

	return 0;
}