ACM (UVa) : 11520


Take input as a string
if u take input as character by character then it may cause input/output difficulties. Let,
char A [10] [11] // 2-D character array
scanf (“%s”, A [0]); // this will take input as string, save it in 0 indexed row (means, first row) and use sufficient column

Traverse each cell and check the possibilities of every character starting from A to Z. As soon as, a character will pass the possibilities then insert the character instead of empty cell, represented by a dot (.)

Let, Index starts from 1 to N, and A [10] [11] is a 2-D array
Suppose, we r checking a character C, whether it is appropriate, for a particular cell, A [Row] [Column]
if A [Row] [Column – 1] not equals to C and
A [Row – 1] [Column] not equals to C and
A [Row] [Column + 1] not equals to C and
A [Row + 1] [Column] not equals to C then
A [Row] [Column] must be assigned with C

Critical input:
2
5
..ABC
ABC..
ERWK.
…AB
EA…
4
..A.
A..A
.A..
A.A.

Critical output:
Case 1:
BCABC
ABCAB
ERWKA
ABCAB
EABCA
Case 2:
BCAB
ABCA
BABC
ABAB

#include <stdio.h>

long N;
char A[11][11];

int Check (long I, long J, long C)
{

	if (A[I][J-1]==C || A[I-1][J]==C || A[I][J+1]==C || A[I+1][J]==C)
			return 0;

	return 1;
}

int main ()
{
	//freopen ("11520out", "w", stdout);
	long T, I, J, C, Flag, Case=0;

	scanf ("%ld", &T);

	while (T){

		scanf("%ld", &N);

		for (I=0; I<N; I++)
			scanf("%s", A[I]);

		printf("Case %ld:\n", ++Case);

		for (I=0; I<N; I++){
			for (J=0; J<N; J++){
				Flag = 0;

				if (A[I][J]=='.'){
					for (C=65; Flag==0; C++){
						if (Check (I, J, C)){
							A[I][J] = C;
							Flag = 1;
						}
					}
				}
			}
		}

		for (I = 0; I<N; I++){
			for (J=0; J<N; J++)
				printf("%c", A[I][J]);
			printf("\n");
		}

		T--;
	}

	return 0;
}
Advertisements

2 thoughts on “ACM (UVa) : 11520

  1. different Abul chooses different process to accomplish an identical task.
    its totally ur choice to select ur own path. Not necessary it should be similar to mine
    got my point ?
    hope not !

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s