Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import java.io.*;
- import java.util.*;
- public class Solution {
- public static void main(String[] args) {
- Scanner in = new Scanner(System.in);
- int T = in.nextInt();
- for (int t = 0; t < T; t++) {
- int N = in.nextInt();
- int M = in.nextInt();
- int a[] = new int[N];
- boolean reachable[] = new boolean[N];
- for (int n = 0; n < N; n++) {
- a[n] = in.nextInt();
- }
- if (expandReachable(a, reachable, 0, N, M))
- System.out.println("YES");
- else
- System.out.println("NO");
- }
- }
- public static boolean expandReachable(int[] a, boolean[] reachable, int i, int N, int M) {
- if (i >= N) {
- return true;
- }
- if (i < 0)
- return false;
- if (reachable[i] == true) {
- return false;
- }
- if (a[i] == 1) {
- return false;
- }
- reachable[i] = true;
- if (expandReachable(a, reachable, i+1, N, M))
- return true;
- if (expandReachable(a, reachable, i-1, N, M))
- return true;
- if (expandReachable(a, reachable, i+M, N, M))
- return true;
- if (expandReachable(a, reachable, i-M, N, M))
- return true;
- return false;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement