1 ๋ถ„ ์†Œ์š”

๐Ÿ“ [S1_6064] ์นด์ž‰ ๋‹ฌ๋ ฅ

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.StringTokenizer;

public class Main {
	public static void main(String[] args) throws IOException {
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		StringTokenizer st;
		StringBuilder sb = new StringBuilder();

		// **** input start ****

		int tc = Integer.parseInt(br.readLine());

		for (int TC = 0; TC < tc; TC++) {
			st = new StringTokenizer(br.readLine(), " ");

			int M = Integer.parseInt(st.nextToken());
			int N = Integer.parseInt(st.nextToken());
			int x = Integer.parseInt(st.nextToken());
			int y = Integer.parseInt(st.nextToken());

			// ๊ฒฐ๊ณผ๊ฐ’
			int res = -1;

			// ์ตœ์†Œ ๊ณต๋ฐฐ์ˆ˜๋ฅผ ๊ตฌํ•ด์ค€๋‹ค
			int num_lcm = 0;
			// ํฌ๊ธฐ์— ๋”ฐ๋ผ
			if (M >= N) {
				num_lcm = lcm(M, N);
			} else {
				num_lcm = lcm(N, M);
			}
			// ๋‚˜๋จธ์ง€๊ฐ€ 0์ด ๋˜๋Š” ๊ฒฝ์šฐ ๋•Œ๋ฌธ์— 1์„ ๋นผ์ค€๋‹ค. ๋‚˜์ค‘์— ๊ฒฐ๊ณผ์—์„œ 1์„ ๋”ํ•ด์ค€๋‹ค.
			x--;
			y--;

			// x๋ถ€ํ„ฐ ์‹œ์ž‘ํ•ด์„œ M์„ ๋”ํ•ด๊ฐ€๋ฉฐ check
			for(int i=x; i<num_lcm; i += M) {
				// ๊ฐ’์„ ์ฐพ์œผ๋ฉด
				if(i%N==y) {
					// ๊ฐ’ ๋„ฃ๊ธฐ
					res = i+1;
					// ์ค‘์ง€
					break;
				}
			}

			sb.append(res).append("\n");
		}
		System.out.println(sb);
	}

	// ์ตœ๋Œ€๊ณต์•ฝ์ˆ˜ ๊ตฌํ•˜๊ธฐ
	static int gcd(int a, int b) {
		if (b == 0)
			return a;

		return gcd(b, a % b);
	}

	// ์ตœ์†Œ๊ณต๋ฐฐ์ˆ˜ ๊ตฌํ•˜๊ธฐ
	static int lcm(int a, int b) {
		return a * b / gcd(a, b);
	}
}

๐Ÿค” ๋‚˜์˜ ์ƒ๊ฐ

๋จผ์ € ์ œ์‹œ๋œ TC๋ฅผ ํ†ตํ•ด ๋ฌธ์ œ๋ฅผ ๋‚˜์—ดํ•ด๋ณด์•˜๋‹ค.
๋‚˜์—ดํ•ด๋ณด๋‹ˆ ๊ทœ์น™์„ ์ฐพ์„ ์ˆ˜ ์žˆ์—ˆ๋‹ค.
๊ธฐ์ค€์„ x๋กœ ์žก๊ณ  M๋งŒํผ ๋Š˜๋ฆฌ๋ฉด์„œ ์ฒดํฌํ•ด์ค€๋‹ค. ๊ฑฐ๊ธฐ์„œ n์œผ๋กœ ๋‚˜๋ˆ ์„œ y ๊ฐ’์ด ๋‚˜์˜ค๋ฉด ๊ทธ ๊ฐ’์ด ์ฐพ๋Š” ๊ฐ’์ด๋‹ค.


ํƒœ๊ทธ: , , ,

์นดํ…Œ๊ณ ๋ฆฌ:

์—…๋ฐ์ดํŠธ: