2019_08_15 모각코 활동일지

오늘의 목표

백준 단계별로 풀어보기 중 '수학 1' 마무리하기


카잉달력.java

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

public class 카잉달력_6064 {
	public static void main(String[] args) throws IOException{
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));

		int test_case = Integer.parseInt(br.readLine());
		//long start_ = System.currentTimeMillis();
		for(int i=0; i < test_case; i++) {
			StringTokenizer 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());

			long bound = gcd(M, N);
			int gap = M-N;

			if(gap==0) {
				if(x==y) {
					bw.write(x+"\n");
				}else bw.write(-1+"\n");
			}else if(gap < 0){
				gap *= -1;

				boolean flag = true;

				int X;
				int show = x;

				X = x;
				while(X!=y) {
					if(show > bound) {
						bw.write(-1+"\n");
						flag = false;
						break;
					}
					X += M;
					if(X>N) {
						while(X>N) X -= N;
					}
					show += M;
				}
				if(flag) bw.write(show+"\n");
			}else {

				boolean flag = true;


				int start_2=0;
				if(x>y) start_2 = x%N;
				else start_2 = x;

				if(start_2==0) start_2 = N;

				int show = x;

				while(start_2!=y) {
					if(show > bound) {
						bw.write(-1+"\n");
						flag = false;
						break;
					}
					start_2 += M;
					if(start_2>N) {
						while(start_2>N) start_2 -= N;
					}
					show += M;
				}
				if(flag) bw.write(show+"\n");
			}
		}
		/*
		long end = System.currentTimeMillis();
		bw.write("걸린시간 : "+((end-start_)/1000.0)/t);
		*/
		bw.flush();
		br.close();
		bw.close();
	}

	public static long gcd(int M, int N) {
		long s;
		int O;
		s = M*N;
		while(N!=0) {
			O = M%N;
			M=N;
			N=O;
		}
		s /= M;
		return s;
	}
}
							
						

활동사진


오늘의 회고

#카잉달력만 3일간 풀려고 노력했는데, 결국 풀어서 너무 기분이 좋았다.


※오른쪽 위 메뉴를 클릭하시면 빠르게 다음날 내용을 보실 수 있습니다.