Posts 백준 18512 점프 점프 c++
Post
Cancel

백준 18512 점프 점프 c++

문제

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

문제해설

두 명의 학생이 각각 p1, p2에서 출발해서 x와 y만큼 점프를 한다.
시작지점에서 가장 가까운 두 학생이 만나는 점을 구하면 된다.

문제풀이

두 명을 각각 x와 y만큼 증가시키며
동일한 지점에서 만날 수 있는지 확인해준다.

100만큼 돌리며 그 안에 안나오면 -1을 출력한다.
왜 100번만 돌리면 되는지 생각해보자
예를들어 99와 100만큼 뛴다고 가정하면
100번을 뛰면 각각 9900과 10000이 된다.
그리고 둘의 차이는 100이 되어 더 이상 절대 만날 수가 없는 것이다.
시작위치가 99만큼 차이가 난다고 하더라고 100번안에 못 만나면 -1이 된다.

전체코드

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include<iostream>
#include<vector>
#include<algorithm>
using namespace std;

int main() {
	ios::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL);
	int x, y, a, b; cin >> x >> y >> a >> b;
	int xp = a, yp = b, cnt = 0;
	while (cnt < 100) {
		if (xp == yp) {
			cout << xp;
			return 0;
		}
		if (xp > yp) 
			yp += y;
		else
			xp += x;
		cnt++;
	}
	cout << -1;
	return 0;
}

백준 1027 고층 건물 c++

백준 11070 피타고라스 기댓값 c++

Comments powered by Disqus.