Untitled

mail@pastecode.io avatarunknown
plain_text
a month ago
1.6 kB
1
Indexable
Never
import java.util.Scanner;

public class Solution {
	static int n, m;
	static int[][] a;
	static int[][] visit;
	static int[][] tham;
	static int[] d1 = {-1,-1,0,0,1,-1,1,1};
	static int[] d2 = {-1,0,-1,1,0,1,-1,1};
	static int dem;
	
	public static void main(String args[]) throws Exception{
		//System.setIn(new FileInputStream("src/Bao_ve_nong_trang/input.txt"));
		Scanner sc = new Scanner(System.in);
		int T;
		int Answer;
		T=sc.nextInt();
		for(int test_case = 1; test_case <= T; test_case++){
			n = sc.nextInt();
			m = sc.nextInt();
			a = new int[n][m];
			visit = new int[n][m];
			tham = new int[n][m];
			for(int i = 0; i < n; i++){
				for(int j = 0; j < m; j++){
					a[i][j] = sc.nextInt();
				}
			}
			
			dem = 0;
			for(int i = 0; i < n; i++){
				for(int j = 0; j < m; j++){
					if(visit[i][j] == 0){
						bfs(i,j);
					}
				}
			}
			System.out.println("#" + test_case + " " + dem);
		}
	}
	
	public static void bfs(int u, int v){
		int temp = 1;
		int[] q = new int[700*700+5];
		int[] w = new int[700*700+5];
		
		int l = 0, r = 0;
		visit[u][v] = 1;
		q[r] = u;
		w[r] = v;
		r++;
		while(l < r){
			int x = q[l];
			int y = w[l];
			l++;
			for(int i = 0; i < 8; i++){
				int xx = x+d1[i];
				int yy = y+d2[i];
				if(xx>=0 && yy >=0 && xx<n && yy<m){
					if(visit[xx][yy] == 0 && a[xx][yy] == a[u][v]){
						visit[xx][yy] = 1;
						q[r] = xx;
						w[r] = yy;
						r++;
					}
					
					if(a[xx][yy] > a[u][v]){
						temp = 0;
					}
				}
			}
		}
		dem += temp;
	}
}