Monday, 24 February 2014

UVA Problem ID 871 (Counting Cells in a Blob)

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;


public class Main {
	static int grid[][];
	public static void main(String[] args) throws IOException {
		BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
		String input;
		
		StringBuilder sb=new StringBuilder(1000);
		int testcases=Integer.parseInt(br.readLine());
		for (int t = 0; t < testcases; t++) 
		{
			if(t>0)
				sb.append("\n");
			br.readLine();
			input=br.readLine();
			int dimension=input.length();
			grid=new int[dimension][dimension];
			for (int j = 0; j < dimension; j++) {
				grid[0][j]=input.charAt(j)-48;
			}
			for (int i = 1; i < dimension; i++) {
				input=br.readLine();
				for (int j = 0; j < dimension; j++) {
					grid[i][j]=input.charAt(j)-48;
				}
			}
			
			int largest=0;
			for (int i = 0; i < dimension; i++) {
				for (int j = 0; j largest)
							largest=count;
					}
				}
			}
			sb.append(largest+"\n");
		}
		System.out.print(sb);

	}
	public static int floodfill(int row,int column,int rowlimit,int columnlimit)
	{
		if(grid[row][column]!=1)
			return 0;
		int count=1;
		
		
		grid[row][column]=0;
		if(row-1>=0)
		{
			count+=floodfill(row-1, column, rowlimit, columnlimit);
			if(column-1>=0)
				count+=floodfill(row-1, column-1, rowlimit, columnlimit);
			if(column+1<=columnlimit)
				count+=floodfill(row-1, column+1, rowlimit, columnlimit);
		}
		if(row+1<=rowlimit)
		{
			count+=floodfill(row+1, column, rowlimit, columnlimit);
			if(column-1>=0)
				count+=floodfill(row+1, column-1, rowlimit, columnlimit);
			if(column+1<=columnlimit)
				count+=floodfill(row+1, column+1, rowlimit, columnlimit);
		}
		if(column-1>=0)
			count+=floodfill(row, column-1, rowlimit, columnlimit);
		if(column+1<=columnlimit)
			count+=floodfill(row, column+1, rowlimit, columnlimit);
		return count;
	}

}

Previous Post
Next Post

0 comments:

Advertisement