Submission details
Task:Hypyt
Sender:20mins
Submission time:2025-11-08 19:32:48 +0200
Language:Java
Status:READY
Result:0
Feedback
groupverdictscore
#10
#20
#30
#40
#50
Test results
testverdicttimegroup
#10.14 s1, 2, 3, 4, 5details
#2ACCEPTED0.19 s1, 2, 3, 4, 5details
#3ACCEPTED0.18 s1, 2, 3, 4, 5details
#4ACCEPTED0.19 s1, 2, 3, 4, 5details
#5ACCEPTED0.18 s1, 2, 3, 4, 5details
#6--2, 5details
#7--2, 5details
#8--2, 5details
#9--3, 4, 5details
#10--3, 4, 5details
#11--3, 4, 5details
#12--4, 5details
#13--4, 5details
#14--4, 5details
#15--5details
#16--5details
#17--5details
#18--5details
#19--5details
#20--5details
#21--5details
#220.14 s1, 2, 3, 4, 5details
#230.14 s1, 2, 3, 4, 5details
#24--5details
#25--5details
#26--5details
#27--5details

Code

import java.util.*;


public class jumps {

	static List<List<Integer>> r_safespaces = new ArrayList<>();
	static List<List<Integer>> c_safespaces = new ArrayList<>();

    public static void main(String[] args) {
        	Scanner sc = new Scanner(System.in);
        	int n = sc.nextInt();
        	int m = sc.nextInt();
        	int q = sc.nextInt();
		sc.nextLine();

        	String[] grid = new String[n];
        	for (int i = 0; i < n; i++) {
            		grid[i] = sc.nextLine().trim();
        	}
        

        	int[][] queries = new int[q][4];
        	for (int i = 0; i < q; i++) {
            		queries[i][0] = sc.nextInt();
            		queries[i][1] = sc.nextInt();
            		queries[i][2] = sc.nextInt();
			queries[i][3] = sc.nextInt();
		}
        

		for (int i = 0; i <= m; i++){
    			r_safespaces.add(new ArrayList<>());
		}

		for (int i = 0; i <= n; i++){
			c_safespaces.add(new ArrayList<>());
		}
		for (int r = 1; r <= n; r++){
			String row = grid[r - 1];
			for (int c = 1; c <= m; c++){
				if (row.charAt(c - 1) == '.'){
					r_safespaces.get(r).add(c);
					c_safespaces.get(c).add(r);
				}
			}
		}
	
		for (int[] query : queries) {
    			int y1 = query[0];
    			int x1 = query[1];
    			int y2 = query[2];
    			int x2 = query[3];
			System.out.println(jump(y1, x1, y2, x2));
		}
	}
	static int jump(int y1, int x1, int y2, int x2) {
    		if (x1 == x2 && y1 == y2){
			return 0;
		}
		Queue<int[]> queue = new LinkedList<>();
		Set<String> visited = new HashSet<>();
		queue.add(new int[]{0, y1, 0});
		queue.add(new int[]{1, x1, 0});
		visited.add("r," + y1);
		visited.add("c," + x1);
		while (!queue.isEmpty()){
			int[] element = queue.poll();
			int tipe = element[0];
			int id = element[1];
			int distance = element[2];
			if (tipe == 0){
				if (id == y2 && r_safespaces.get(id).contains(x2)) {
					return distance+1;
				}
				for (int c : r_safespaces.get(id)) {
					if (!visited.contains("c," + c)) {
						visited.add("c," + c);
						queue.add(new int[]{1, c, distance + 1});
					}
				}
			}
			else{
				if (id == x2 && c_safespaces.get(id).contains(y2)) {
					return distance+1;
				}
				for (int r : c_safespaces.get(id)) {
					if (!visited.contains("r," + r)) {
						visited.add("r," + r);
						queue.add(new int[]{0, r, distance + 1});
					}
				}
			}
		
		}
		return -1;
    }
}
	




 

Test details

Test 1 (public)

Group: 1, 2, 3, 4, 5

Verdict:

input
4 6 5
.*.***
*...**
*****.
*..*.*
...

correct output
1
0
3
3
-1

user output
(empty)

Error:
Exception in thread "main" java.lang.IndexOutOfBoundsException: Index 6 out of bounds for length 5
	at java.base/jdk.internal.util.Preconditions.outOfBounds(Preconditions.java:64)
	at java.base/jdk.internal.util.Preconditions.outOfBoundsCheckIndex(Preconditions.java:70)
	at java.base/jdk.internal.util.Preconditions.checkIndex(Preconditions.java:248)
	at java.base/java.util.Objects.checkIndex(Objects.java:374)
	at java.base/java.util.ArrayList.get(ArrayList.java:459)
	at jumps.main(jumps.java:43)

Test 2

Group: 1, 2, 3, 4, 5

Verdict: ACCEPTED

input
10 10 10
..........
.....*....
........*.
*.*....*..
...

correct output
1
2
1
2
2
...

user output
1
2
1
2
2
...

Test 3

Group: 1, 2, 3, 4, 5

Verdict: ACCEPTED

input
10 10 10
*...***.**
*****.*...
**..**.**.
..**.**.*.
...

correct output
1
2
2
1
2
...

user output
1
2
2
1
2
...

Test 4

Group: 1, 2, 3, 4, 5

Verdict: ACCEPTED

input
10 10 10
***.*.****
**********
*.********
.*.***.**.
...

correct output
3
4
2
3
4
...

user output
3
4
2
3
4
...

Test 5

Group: 1, 2, 3, 4, 5

Verdict: ACCEPTED

input
10 10 1
.****.****
**.**..***
**********
*******..*
...

correct output
7

user output
7

Test 6

Group: 2, 5

Verdict:

input
250 250 250
.*...*.....*******..**...*.......

correct output
2
3
3
2
2
...

user output
(empty)

Test 7

Group: 2, 5

Verdict:

input
250 250 250
...*......**.**.*.*..**..*..**...

correct output
2
2
2
2
3
...

user output
(empty)

Test 8

Group: 2, 5

Verdict:

input
250 250 250
**..**..****.****.*.***.***..*...

correct output
2
3
3
3
3
...

user output
(empty)

Test 9

Group: 3, 4, 5

Verdict:

input
40 40 200000
...*.**.*..*.............*.*.....

correct output
2
2
2
2
2
...

user output
(empty)

Test 10

Group: 3, 4, 5

Verdict:

input
40 40 200000
**.**..*.*.*.******....****.*....

correct output
2
1
3
2
2
...

user output
(empty)

Test 11

Group: 3, 4, 5

Verdict:

input
40 40 200000
.*.*.**.*****.***.*.****.**.**...

correct output
3
3
3
3
3
...

user output
(empty)

Test 12

Group: 4, 5

Verdict:

input
80 80 200000
*....**.***..****...*.....*......

correct output
2
2
2
2
2
...

user output
(empty)

Test 13

Group: 4, 5

Verdict:

input
80 80 200000
.***.*..*.***..*****....**...*...

correct output
3
2
2
3
2
...

user output
(empty)

Test 14

Group: 4, 5

Verdict:

input
80 80 200000
*******.*****.*..*..****...***...

correct output
2
3
1
2
2
...

user output
(empty)

Test 15

Group: 5

Verdict:

input
250 250 200000
*....*..*..*..**..*.........**...

correct output
3
2
2
2
2
...

user output
(empty)

Test 16

Group: 5

Verdict:

input
250 250 200000
..*....*..*......*.**.*.*..***...

correct output
2
2
2
2
2
...

user output
(empty)

Test 17

Group: 5

Verdict:

input
250 250 200000
*..*.*****.*********.****.****...

correct output
3
3
2
2
2
...

user output
(empty)

Test 18

Group: 5

Verdict:

input
250 250 200000
*********.**********.******.**...

correct output
3
3
3
3
3
...

user output
(empty)

Test 19

Group: 5

Verdict:

input
250 250 200000
.*****************************...

correct output
104
422
145
93
65
...

user output
(empty)

Test 20

Group: 5

Verdict:

input
250 250 200000
..****************************...

correct output
57
155
38
65
98
...

user output
(empty)

Test 21

Group: 5

Verdict:

input
250 250 200000
.*****************************...

correct output
498
498
498
498
498
...

user output
(empty)

Test 22

Group: 1, 2, 3, 4, 5

Verdict:

input
10 1 10
*
*
.
*
...

correct output
0
1
1
0
0
...

user output
(empty)

Error:
Exception in thread "main" java.lang.IndexOutOfBoundsException: Index 3 out of bounds for length 2
	at java.base/jdk.internal.util.Preconditions.outOfBounds(Preconditions.java:64)
	at java.base/jdk.internal.util.Preconditions.outOfBoundsCheckIndex(Preconditions.java:70)
	at java.base/jdk.internal.util.Preconditions.checkIndex(Preconditions.java:248)
	at java.base/java.util.Objects.checkIndex(Objects.java:374)
	at java.base/java.util.ArrayList.get(ArrayList.java:459)
	at jumps.main(jumps.java:42)

Test 23

Group: 1, 2, 3, 4, 5

Verdict:

input
1 10 10
........*.
1 7 1 10
1 4 1 7
1 5 1 1
...

correct output
1
1
1
1
1
...

user output
(empty)

Error:
Exception in thread "main" java.lang.IndexOutOfBoundsException: Index 2 out of bounds for length 2
	at java.base/jdk.internal.util.Preconditions.outOfBounds(Preconditions.java:64)
	at java.base/jdk.internal.util.Preconditions.outOfBoundsCheckIndex(Preconditions.java:70)
	at java.base/jdk.internal.util.Preconditions.checkIndex(Preconditions.java:248)
	at java.base/java.util.Objects.checkIndex(Objects.java:374)
	at java.base/java.util.ArrayList.get(ArrayList.java:459)
	at jumps.main(jumps.java:43)

Test 24

Group: 5

Verdict:

input
250 1 200000
*
.
*
.
...

correct output
1
1
1
1
1
...

user output
(empty)

Test 25

Group: 5

Verdict:

input
1 250 200000
*.*.*...*.*.**.***..**.*.*..**...

correct output
1
1
1
1
1
...

user output
(empty)

Test 26

Group: 5

Verdict:

input
250 250 200000
.................................

correct output
2
2
2
2
2
...

user output
(empty)

Test 27

Group: 5

Verdict:

input
250 250 200000
******************************...

correct output
0
0
0
0
0
...

user output
(empty)