## Covid Run Codechef October long challenge problem solution| Codechef October long challenge problem solution -

This is very first and easy problem of Codechef October long challenge problem solution| Codechef October long challenge problem solution.

**Problem Statement-**

Covid-19$19$ is spreading fast! There are N$N$ cities, numbered from 0$0$ to (N−1)$(N-1)$, arranged in a circular manner. City 0$0$ is connected to city 1$1$, 1$1$ to 2$2$, …$\dots $, city (N−2)$(N-2)$ to city (N−1)$(N-1)$, and city (N−1)$(N-1)$ to city 0$0$.

The virus is currently at city X$X$. Each day, it jumps from its current city, to the city K$K$ to its right, i.e., from city X$X$ to the city (X+K)%N$(X+K)\mathrm{\%}N$. As the virus jumps, the cities in between don't get infected. Cities once infected stay infected. You live in city Y$Y$. Find if it will reach your city eventually. If it will, print YES, else print NO.

- The first line of the input consists of an integer T$T$, the number of test cases.
- The first and only line of each test case contains four space-separated integers - N$N$, K$K$, X$X$ and Y$Y$, denoting the number of cities, the size of jumps, Covid's current city, and the city that you live in, respectively.

### Output:

For each test case, in a new line, print YES if Covid shall reach your city after a finite number of days, else print NO.

### Constraints

- 1≤T≤100$1\le T\le 100$
- 1≤N≤1000$1\le N\le 1000$
- 0≤X,Y≤N−1$0\le X,Y\le N-1$
- 0≤K≤1000$0\le K\le 1000$

### Subtasks

- Subtask 1 - 100% - Original constraints

```
2
6 2 5 3
12 3 4 2
```

### Sample Output:

```
YES
NO
```

### Explanation:

In the first sample, Covid starts at city 5$5$, then goes to city 1$1$, and then from city 1$1$ to city 3$3$. Thus, it reaches the city that you live in.

In the second sample, Covid starts at city 4$4$, goes to city 7$7$, then 10$10$, 1$1$, then 4$4$, 7$7$, 10$10$, …$\dots $, and so on. It never reaches city 2$2$.

Let's directly jump into solution

according to problem statement take input t= total number of test cases .

next line contain n,k,xand y

take input for n,k,x and y.

virus is currently at city x.

spreading rate of virus is k means virus can jump k city from its currenty position x.

Question says that you are living currently at y city so you have to tell that virus may infect you or not.

Logic-

Approach of this question is very simple simply you have to jump k step from current city and if this goes out of (N-1) city it will

return back to city (n+k)%n th city.

dont try to think too much follow steps as mentioned in question it is called bruete force approach.

My approach-

My approach says that if the virus currently at city x in the next step it will jump to (x+k)%n th city.

What i will do i will maintain a flag variable that will tell me that virus can reach to place y or not.

step 1-If virus already at position y. so i have to simply return true.otherwise, I will move form current city to x+k th city.in this case i will mark my flag as true and terminate the loop.

step 2- if virus reach again at x position it mean it will never reach to city y and the person who is sitting in city y is safe.

in this case i will mark my flag as false and terminate the loop.

finally, i will print the result according to the flag

if(z){

cout<<"YES"<<endl;

}

else{

cout<<"NO"<<endl;

}

Entire code solution is given below-

## Comments

## Post a Comment