guys..... i hav given up.. i may have got over 20 WA in this.. so i m just tired of submitting anymore.. and FAQ ur test case gives me 13 as output.. but i still get WA.. i dont know why.. or whats wrong with my code or logic.. i cant find nothing.. so i m just going to post my whole code so u guys can luk at it and give me some positive analysis on it! thanks in advance!
Code: Select all
#include<stdio.h>
int LandArea, RLIMIT, CLIMIT, kingx, kingy, inRegion;
char W, L;
void KingFound(char LW[][22], int x, int y)
{
LW[x][y]=W;
if((y==1) & (LW[x][CLIMIT]==L))
KingFound(LW,x,CLIMIT);
if((y==CLIMIT) & (LW[x][1]==L))
KingFound(LW,x,1);
if(LW[x-1][y]==L)
KingFound(LW,x-1,y);
if(LW[x][y+1]==L)
KingFound(LW,x,y+1);
if(LW[x+1][y]==L)
KingFound(LW,x+1,y);
if(LW[x][y-1]==L)
KingFound(LW,x,y-1);
}
void LandFound(char LW[][22], int x, int y)
{
if((x==kingx) & (y==kingy)) {
LandArea=0;
KingFound(LW,x,y);
}
LW[x][y]=W;
if((y==1) & (LW[x][CLIMIT]==L)) {
LandArea++;
LandFound(LW,x,CLIMIT);
}
if((y==CLIMIT) & (LW[x][1]==L)) {
LandArea++;
LandFound(LW,x,1);
}
if(LW[x-1][y]==L) {
LandArea++;
LandFound(LW,x-1,y);
}
if(LW[x][y+1]==L) {
LandArea++;
LandFound(LW,x,y+1);
}
if(LW[x+1][y]==L) {
LandArea++;
LandFound(LW,x+1,y);
}
if(LW[x][y-1]==L) {
LandArea++;
LandFound(LW,x,y-1);
}
}
void main()
{
//freopen("11094.txt","r",stdin);
int i, j, row, col;
char LandWater[22][22];
while(scanf("%d %d\n", &row, &col)==2) {
RLIMIT = row;
CLIMIT = col;
inRegion=0;
LandArea=0;
for(i=1;i<=row;i++) {
for(j=1;j<=col;j++) {
LandWater[i][j]=getchar();
}
getchar();
}
scanf("%d %d", &kingx, &kingy);
kingx=kingx + 1;
kingy=kingy + 1;
L = LandWater[kingx][kingy];
int temp=0;
for(i=1;i<=row;i++) {
for(j=1;j<=col;j++) {
if(LandWater[i][j]!=L) {
W = LandWater[i][j];
temp=1;
break;
}
}
if(temp)
break;
}
for(j=0;j<=col+1;j++) {
LandWater[0][j]=W;
LandWater[row+1][j]=W;
}
for(i=0;i<=row+1;i++) {
LandWater[i][0]=W;
LandWater[i][col+1]=W;
}
int max_LandArea = 0;
for(i=1;i<=row;i++) {
for(j=1;j<=col;j++) {
if(LandWater[i][j]==L) {
LandArea=1;
LandFound(LandWater,i,j);
if(LandArea>max_LandArea)
max_LandArea=LandArea;
inRegion++;
}
}
}
//printf("Region:%d Land:%c Water:%c CanConquer:%d\n", inRegion, L, W, max_LandArea);
printf("%d\n", max_LandArea);
}
//fclose(stdin);
}
and here is the testcases input file i hav tested my code with:
11094.txt:
4 5
kklkk
klklk
klllk
kkkkk
1 2
1 1
h
0 0
6 6
aaaaaa
bbaaab
aaaabb
abaaba
abbaaa
abbabb
5 5
6 6
aaaaaa
bbaaab
aaaabb
abaaba
abbaba
abbaba
5 4
6 6
abaaab
bbaaab
aaaaab
abaaba
abbaba
abbaba
5 4
6 6
------
------
------
------
------
------
3 3
6 6
--77--
--77--
--77--
--77--
--77--
--77--
2 2
6 6
--77--
------
--77--
--77--
------
--77--
2 2
20 20
qvvvvvvvvvvvvvvvvvvv
vvvvvvvvvvvvvvvvvvvv
vvvvvvvvvvvvvvvvvvvv
qqqqqqqqqqqqqqqqqqqq
vvvvvvvvvvvvvvvvvvvv
vvvvvvvvvvvvvvvvvvvv
vvvvvvvvvvvvvvvvvvvv
vvvvvvvvvvvvvvvvvvvv
vvvvvvvvvvvvvvvvvvvv
qqqqqqqqqqqqqqqqqqqq
vvvvvvvvqvvvvvvvvvvv
vvvvvvvvqvvvvvvvvvvv
vvvvvvvvqVvVvvvvvvvv
vvvvvvvvqvvvvvvvvvvv
vvvvvvvVqvvvvvvvvvvv
qqqqqqqqqqqqqqqqqqqq
vvvvvvvvvvvvvvvvvvvq
vvvvvvvvvvvvvvvvvvvq
vvvvvvvvvvvvvvvvvvvq
vvvvvvvvvvvvvvvvvvvq
0 0
1 1
q
0 0
1 1
w
0 1
2 2
w@
@@
0 0
2 2
w@
@@
0 1
2 2
w@
@w
0 0
20 20
~qqqqqqqqqqqqqqqqqq~
qqqqqqqqqqqqqqqqqqqq
~qqqqqqqqqqqqqqqqqq~
qqqqqqqqqqqqqqqqqqqq
qqqqqqqqqqqqqqqqqqqq
qqqqqqqqqqqqqqqqqqqq
qqqqqqqqqqqqqqqqqqqq
qqqqqqqqqqqqqqqqqqqq
qqqqqqqqqqqqqqqqqqqq
qqqqqqqqqqqqqqqqqqqq
qqqqqqqqqqqqqqqqqqqq
qqqqqqqqqqqqqqqqqqqq
qqqqqqqqqqqqqqqqqqqq
qqqqqqqqqqqqqqqqqqqq
qqqqqqqqqqqqqqqqqqqq
qqqqqqqqqqqqqqqqqqqq
qqqqqqqqqqqqqqqqqqqq
qqqqqqqqqqqqqqqqqqqq
qqqqqqqqqqqqqqqqqqqq
~qqqqqqqqqqqqqqqqqq~
2 0
20 20
@@qqqqqqqqqqqqqqqqqq
qqqqqqqqqqqqqqqqqqqq
qqqqqqqqqqqqqqqqqqqq
qqqqqqqqqqqqqqqqqqqq
qqqqqqqqqqqqqqqqqqqq
qqqqqqqqqqqqqqqqqqqq
qqqqqqqqqqqqqqqqqqqq
qqqqqqqqqqqqqqqqqqqq
qqqqqqqqqqqqqqqqqqqq
qqqqqqqq@qqq@qqqqqqq
qqqqqqqqq@@@qqqqqqqq
qqqqqqqqq@@@qqqqqqqq
qqqqqqqqq@@@qqqqqqqq
qqqqqqqq@qqq@qqqqqqq
@qqqqqq@qq@qq@qqqqq@
qqqqqqqqqqqqqqqqqqq@
qqqqqqqqqq@qqqqqqqqq
qqqqqqqqqq@qqqqqqqqq
qqqqqqqqqqqqqqqqqqqq
@@qqqqqqqqqqqqqqqqqq
10 10
20 20
qqqqqqqqqqqqqqqqqqqq
qqqqqqqqqqqqqqqqqqqq
qqqqqqqqqqVVVVVVVVVV
qqqqqqqqqqVVVVVVVVVq
qqqqqqqqqqqqqqqqqqqq
qqqqqqqqqqqqqqqqqqqq
qqqqqqqqqqqqqqqqqqqq
qqqqqqqqqqVqqqqqqqqq
qqqqqqqqqqVqqqqqqqqq
qqqqqqqqqqVqqqqqqqqq
qqqqqqqqqqVqqqqqqqqq
VqqqqqqqqqVVVVVVVVVV
qqqqqqqqqqVqqqqqqqqq
VVVVVVqqqqVqqqqqqqqq
vvvqqqqqqqqqqqqvVVVV
qvvVqqqqqqqqqqqqqqqq
vVVqqqqqqqqqqqVVVVVq
qqqqqqqqqqqqqqqqqqqq
qqqqqqqqqqqqqqqqqqqq
qqqqqqqqqqqqqqqqqqqq
10 10
5 5
wwwww
wwllw
wwwww
wllww
wwwww
1 3
5 5
lwwww
wllww
lwlll
wwwlw
wllww
2 2
7 5
wwwww
w@@@w
wwwww
wwwww
ww@@@
@www@
wwww@
5 0
5 5
ooooo
ooiii
iiiii
oiioo
ooooo
3 3
6 6
wwllww
llllww
wwwwww
llwlll
llwlll
wwwwww
0 1
6 6
wzzzww
wwwzww
wwzzww
zwwwwz
wwwwww
wwwwzz
2 3
6 6
wwMwww
wwwwww
wwwwMw
MwwwwM
wwwwww
wwwMww
5 3
here is the output:
13
0
6
5
6
0
0
2
49
0
0
0
0
1
2
3
19
2
2
3
7
0
2
2