Monday, 24 February 2014

UVA Problem ID 10946 (You want what filled?)

UVA Problem ID 10946 (You want what filled?)
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Arrays;

public class Main {
	static char grid[][];
	static boolean wasVisited[][];
	public static void main(String[] args) throws IOException {
		BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
		String input;
		StringBuilder sb=new StringBuilder(1000);
		int testcase=0;
		while((input=br.readLine())!=null) 
		{
			String s[]=input.split(" +");
			int row=Integer.parseInt(s[0]);
			int column=Integer.parseInt(s[1]);
			if(row==0 && column==0)
				break;
			testcase++;
			grid=new char[row][column];
			wasVisited=new boolean[row][column];
			for (int i = 0; i < row; i++) {
				input=br.readLine().trim();
				for (int j = 0; j rowlimit || column>columnlimit || row<0 || column<0 || wasVisited[row][column]==true)
			return 0;
		if(grid[row][column]==c)
		{
			count++;
			grid[row][column]='.';
			wasVisited[row][column]=true;
			count+=floodfill(row-1,column,c,rowlimit,columnlimit);
			count+=floodfill(row,column-1,c,rowlimit,columnlimit);
			count+=floodfill(row,column+1,c,rowlimit,columnlimit);
			count+=floodfill(row+1,column,c,rowlimit,columnlimit);
			return count;
		}
		return 0;
	}
}
class Hole implements Comparable
{
	char name;
	int count;
	public Hole(char n,int c)
	{
		name=n;
		count=c;
	}
	
	@Override
	public int compareTo(Hole h1) {
		if(this.count>h1.count)
			return -1;
		else if(this.count 

UVA Problem ID 10336 (Rank the Languages)

UVA Problem ID 10336 (Rank the Languages)
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Arrays;

public class Main {
	static char grid[][];
	static boolean wasVisited[][];
	public static void main(String[] args) throws IOException {
		BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
		String input;
		StringBuilder sb=new StringBuilder(1000);
		int testcase=Integer.parseInt(br.readLine());
		for (int t1 = 0; t1 rowlimit || column>columnlimit || row<0 || column<0 || wasVisited[row][column]==true)
			return ;
		if(grid[row][column]==c)
		{
			grid[row][column]='.';
			wasVisited[row][column]=true;
		
		
		floodfill(row-1,column,c,rowlimit,columnlimit);
		floodfill(row,column-1,c,rowlimit,columnlimit);
		floodfill(row,column+1,c,rowlimit,columnlimit);
		floodfill(row+1,column,c,rowlimit,columnlimit);
		}
		
	}
}
class Token implements Comparable
{
	char name;
	int count;
	public Token(char n,int c)
	{
		name=n;
		count=c;
	}
	
	@Override
	public int compareTo(Token t1) {
		if(this.count>t1.count)
			return -1;
		else 
			return 1;
	}
}

UVA Problem ID 784 (Maze Exploration)

UVA Problem ID 784 (Maze Exploration)
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;


public class Main {
	static char grid[][]=new char[30][];
	static boolean wasVisited[][]=new boolean[30][];
	public static void main(String[] args) throws IOException {
		BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
		String input;
		StringBuilder sb=new StringBuilder(1000);
		int testases=Integer.parseInt(br.readLine());
		for (int t1 = 0; t1 < testases; t1++) 
		{
			input=br.readLine();
			int t=0;
			do {
				grid[t]=new char[input.length()];
				wasVisited[t]=new boolean[input.length()];
				for (int j = 0; j rowlimit || column>columnlimit || row<0 || column<0 )
			return;
		if(grid[row][column]=='X' || wasVisited[row][column]==true)
			return;
			
		if(grid[row][column]==' ' || grid[row][column]=='*')
		{
			grid[row][column]='#';
			wasVisited[row][column]=true;
		}
		floodfill(row-1,column,rowlimit,grid[row-1].length-1);
		floodfill(row,column-1,rowlimit,grid[row].length-1);
		floodfill(row,column+1,rowlimit,grid[row].length-1);
		floodfill(row+1,column,rowlimit,grid[row+1].length-1);
	}
}

UVA Problem ID 572 (Oil Deposits)

UVA Problem ID 572 (Oil Deposits)
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;


public class Main {
	public static void main (String args[]) throws IOException
	{
		BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
		String input;
		StringBuilder sb=new StringBuilder(1000);
		while((input=br.readLine())!=null)
		{
			String s[]=input.split(" +");
			int m=Integer.parseInt(s[0]);
			int n=Integer.parseInt(s[1]);
			if(m==0)
				break;
			char grid[][]=new char[m][n];
			
			for (int i = 0; i < m; i++) {
				input=br.readLine();
				for (int j = 0; j < n; j++) {
					grid[i][j]=input.charAt(j);
				}	
			}
			int no_of_oilDeposits=0;
			for(int i=0;i=0)
		{
			if(column-1>=0 && grid[row-1][column-1]=='@')
				floodfill(grid,row-1, column-1,rowlimit,columnlimit);
			if(column+1=0 && grid[row+1][column-1]=='@')
				floodfill(grid,row+1, column-1,rowlimit,columnlimit);
			if(column+1=0 && grid[row][column-1]=='@')
			floodfill(grid,row, column-1,rowlimit,columnlimit);
		if(column+1

UVA Problem ID 352 (Seasonal War)

UVA Problem ID 352 (Seasonal War)
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;


public class Main {
	public static void main (String args[]) throws IOException
	{
		BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
		String input;
		StringBuilder sb=new StringBuilder(1000);
		int imageNo=0;
		while((input=br.readLine())!=null)
		{
			imageNo++;
			int dimention=Integer.parseInt(input.trim());
			
			char image[][]=new char[dimention][dimention];
			
			for (int i = 0; i < dimention; i++) {
				input=br.readLine();
				for (int j = 0; j < dimention; j++) {
					image[i][j]=input.charAt(j);
				}	
			}
			int no_of_eagle=0;
			for(int i=0;i=0)
		{
			if(column-1>=0 && image[row-1][column-1]=='1')
				floodfill(image,row-1, column-1,dimention);
			if(column+1=0 && image[row+1][column-1]=='1')
				floodfill(image,row+1, column-1,dimention);
			if(column+1=0 && image[row][column-1]=='1')
			floodfill(image,row, column-1,dimention);
		if(column+1

Thursday, 20 February 2014

UVA Problem ID 459 (Graph Connectivity)

UVA Problem ID 459 (Graph Connectivity)
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;


public class Main
{
	static int pset[];
	 
	public static void main(String[] args) throws IOException
	{
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		String input;
		StringBuffer sb = new StringBuffer("");
		int testcases = Integer.parseInt(br.readLine());
		br.readLine();
		for (int i = 0; i < testcases; i++)
		{
			if(i>0)
				sb.append("\n");
			int largest=br.readLine().charAt(0)-64;
			initSet(largest);
			while((input=br.readLine())!=null)
			{
				if(input.trim().equals(""))
					break;
				
				union(input.charAt(0)-65,input.charAt(1)-65);
//				UnionFindDisjoint1.print();
				
			}
			
//			Set set=UnionFindDisjoint1.unique();
			sb.append(numberOfSets()+"\n");
			
		}
		System.out.print(sb);
	}
	public static int findSet(int i)
	{
		return (pset[i] == i) ? i : (pset[i] = findSet(pset[i]));
	}
	public static void  union(int i,int j)
	{
		pset[findSet(i)] = findSet(j);
	}
	public static void initSet(int size)
	{
		pset=new int[size];
		for (int i = 0; i < size; i++)
		{
			pset[i]=i;
		}
	}
	public static int numberOfSets()
	{
		int numerofsets=0;
		for (int i = 0; i < pset.length; i++)
		{
			if(pset[i] == i)
				numerofsets++;
		}
		return numerofsets;
	}
}

Advertisement