이 문제에서 출발점을 나타내는 4개의 정수가 주어졌고 각 경주에서 점프를 했습니다. 우리의 임무는 같은 횟수의 점프 후에 두 사람이 만나는지를 찾는 것입니다.
문제 설명: 여기에서 p1과 p2 지점에서 시작하여 j1과 j2 점프를 하는 두 사람이 경로의 어떤 지점에 있는지 확인해야 합니다.
문제를 이해하기 위해 예를 들어 보겠습니다.
입력: p1 =5, p2 =9, j1 =4, j2 =2
출력: 예
설명:
첫 번째 점프 후 p1 =9, p2 =11
두 번째 점프 후 p1 =13, p2 =13
해결 방법:
어떤 지점에서 만나기 위해 두 사람은 서로 다른 거리를 점프해야 합니다. 사람의 만남이 가능한지 확인하기 위해 충족해야 하는 몇 가지 조건은 다음과 같습니다.
p1> p2이면 s1은 s2보다 작아야 합니다.
그리고 ( (p2 - p1) % (s1 - s2) ) ==0
그러면 회의가 가능합니다. 그렇지 않으면 불가능합니다.
우리 솔루션의 작동을 설명하는 프로그램,
예시
#include<iostream> using namespace std; bool WillMeet(int p1, int j1, int p2, int j2){ return ( (j1 > j2 && ( ((p2 - p1) % (j1 - j2)) == 0)) || (j2 > j1 && ( ((p1 - p2) % (j2 - j1)) == 0)) ); } int main() { int p1 = 5, j1 = 4, p2 = 9, j2 = 2; if(WillMeet(p1, j1, p2, j2)) cout<<"Both will meet at some point"; else cout<<"Both will not meet at any point"; return 0; }
출력
Both will meet at some point