classSolution{publicintmovingCount(int m,int n,int k){boolean[][] visited =newboolean[m][n];int res =0;Queue<int[]> queue=newLinkedList<int[]>();
queue.add(newint[]{0,0,0,0});while(queue.size()>0){int[] x = queue.poll();int i = x[0], j = x[1], si = x[2], sj = x[3];if(i >= m || j >= n || k < si + sj || visited[i][j])continue;
visited[i][j]=true;
res ++;
queue.add(newint[]{ i +1, j,(i +1)%10!=0? si +1: si -8, sj });
queue.add(newint[]{ i, j +1, si,(j +1)%10!=0? sj +1: sj -8});}return res;}}