Code: Select all
1
LLLLLLLLL
LLWWLLWLL
LWWLLLLLL
LWWWLWWLL
LLLWWWLLL
LLLLLLLLL
LLLWWLLWL
LLWLWLLLL
LLLLLLLLL
2 7
Moderator: Board moderators
Code: Select all
1
LLLLLLLLL
LLWWLLWLL
LWWLLLLLL
LWWWLWWLL
LLLWWWLLL
LLLLLLLLL
LLLWWLLWL
LLWLWLLLL
LLLLLLLLL
2 7
Code: Select all
for(i=0;s[i]!=' ';i++)
{
temp=temp+s[i];
xpt=convert(temp);
temp="";
}
for(j=i+1;j<s.length();j++)
{
temp=temp+s[j];
ypt=convert(temp);
temp="";
}
Code: Select all
for(i=0;s[i]!=' ';i++)
{
temp=temp+s[i];
}
xpt=convert(temp);
temp="";
for(j=i+1;j<s.length();j++)
{
temp=temp+s[j];
}
ypt=convert(temp);
temp="";
Code: Select all
1
LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL
LWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWL
LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL
LWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWL
LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL
LWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWL
LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL
LWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWL
LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL
LWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWL
LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL
LWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWL
LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL
LWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWL
LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL
LWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWL
LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL
LWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWL
LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL
LWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWL
LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL
LWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWL
LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL
LWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWL
LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL
LWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWL
LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL
LWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWL
LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL
LWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWL
LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL
2 2
Code: Select all
1
Code: Select all
Removed after AC, Thank you very much [b]lighted[/b].it is simple input taking problem.
Code: Select all
1
LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL
LWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWL
LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL
LWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWL
LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL
LWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWL
LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL
LWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWL
LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL
LWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWL
LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL
LWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWL
LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL
LWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWL
LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL
LWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWL
LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL
LWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWL
LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL
LWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWL
LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL
LWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWL
LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL
LWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWL
LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL
LWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWL
LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL
LWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWL
LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL
LWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWLWL
LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL
10 10
Code: Select all
1
Code: Select all
#include <stdio.h>
#include<ctype.h>
#include<string.h>
char st[101][101] = {'\0'};
char stCP[101][101] = {'\0'};
int N = 100;
int Ans;
int testCase;
void fill(int x, int y)
{
if(st[x][y] == 'W')
{
st[x][y] = 'L';
Ans++;
}
else
{
return;
}
if(((x-1)>=0 && (y-1)>=0) && st[x-1][y-1]=='W')
{
fill(x-1,y-1);
}
if(((x-1)>=0)&&st[x-1][y]=='W')
{
fill(x-1,y);
}
if((((x-1)>=0)&&(y+1)<N)&& st[x-1][y+1]=='W')
{
fill(x-1,y+1);
}
if(((y-1)>=0)&& st[x][y-1]=='W')
{
fill(x,y-1);
}
if((y+1<N)&& st[x][y+1]=='W')
{
fill(x,y+1);
}
if(((x+1<N)&&(y-1)>=0)&& st[x+1][y-1]=='W')
{
fill(x+1,y-1);
}
if((x+1<N)&& st[x+1][y]=='W')
{
fill(x+1,y);
}
if(((x+1<N)&&(y+1)<N)&& st[x+1][y+1]=='W')
{
fill(x+1,y+1);
}
}
void copyMatrix(int index)
{
int i = 0;
while(strlen(st[i])>0)
{
memset(st[i],'\0',strlen(st[i]));
i++;
}
for(i=0;i<index;i++)
{
strcpy(st[i],stCP[i]);
}
int len = strlen(st[0]);
//N = ((index-1) * len);
}
void readCase()
{
int i = 0;
bool flag = false;
int k = 0;
int j = 0;
while((gets(stCP[i]))&&(strlen(stCP[i]))>0)
{
if(isdigit(stCP[i][0]))
{
int r,c;
if(k==0)
{
k=i-j;
}
if(sscanf(stCP[i],"%d%d",&r,&c)==2)
{
Ans = 0;
copyMatrix(k);
fill(r-1,c-1);
k = 0;
j++;
printf("%d\n",Ans);
}
}
i++;
}
}
int main()
{
//freopen("input.txt","r",stdin);
int T;
scanf("%d",&T);
getchar(); getchar();
bool blank = false;
while(T--)
{
if(blank)
printf("\n");
blank = true;
readCase();
}
return 0;
}
Code: Select all
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#define maxX 110
#define maxY 110
char** pixel;
char waterland[maxX][maxY];
int testcase;
int rowCounter = 0;
int colCounter = 0;
int wetlandCount = 0;
void floodFillUtil(int x, int y)
{
char prevC = 'W';
char newC = 'L';
if (waterland[x][y] != prevC)
return;
++ wetlandCount;
waterland[x][y] = newC;
if ( x + 1 < rowCounter )
floodFillUtil(x+1, y); // R
if ( x - 1 >= 0 )
floodFillUtil(x-1, y); // L
if ( y + 1 < colCounter )
floodFillUtil(x, y+1); // T
if ( y - 1 >= 0 )
floodFillUtil(x, y-1); // B
if ( y + 1 < colCounter && x + 1 < rowCounter )
floodFillUtil(x+1, y+1); // RT
if ( y + 1 < colCounter && x - 1 >= 0 )
floodFillUtil(x-1, y+1); // LT
if ( y - 1 >= 0 && x - 1 >= 0 )
floodFillUtil(x-1, y-1); // BL
if ( x + 1 < rowCounter && y - 1 >= 0 )
floodFillUtil(x+1, y-1); // BR
}
int main()
{
//freopen("input.txt", "r", stdin);
//freopen("output.txt", "w", stdout);
scanf("%d", &testcase);
getchar();
getchar();
for(int i = 1; i <= testcase; ++i)
{
pixel = new char*[maxX];
rowCounter = 0;
colCounter = 0;
int m, n;
int queryI, queryJ;
char temp[maxX];
while(gets(temp) && strlen(temp) > 0)
{
if (temp[0] == 'L' || temp[0] == 'W')
{
++ rowCounter;
colCounter = strlen(temp);
pixel[m] = new char[colCounter + 1];
strcpy(pixel[m], temp);
}
else
{
sscanf(temp, "%d %d" ,&queryI, &queryJ);
memset(waterland, '\0', sizeof(waterland));
for (int k = 0; k < rowCounter; ++ k)
strcpy(waterland[k], pixel[k]); //copy to waterland for BFS
floodFillUtil(queryI - 1, queryJ - 1);
printf("%d\n", wetlandCount);
wetlandCount = 0;
}
memset( temp, '\0', sizeof(temp));
}
if(i < testcase)
printf("\n");
}
return 0;
}
Code: Select all
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#define maxX 110
#define maxY 110
char** pixel;
char waterland[maxX][maxY];
int testcase;
int rowCounter = 0;
int colCounter = 0;
int wetlandCount = 0;
void floodFillUtil(int x, int y)
{
char prevC = 'W';
char newC = 'L';
if (waterland[x][y] != prevC)
return;
++ wetlandCount;
waterland[x][y] = newC;
if ( x + 1 < rowCounter )
floodFillUtil(x+1, y); // R
if ( x - 1 >= 0 )
floodFillUtil(x-1, y); // L
if ( y + 1 < colCounter )
floodFillUtil(x, y+1); // T
if ( y - 1 >= 0 )
floodFillUtil(x, y-1); // B
if ( y + 1 < colCounter && x + 1 < rowCounter )
floodFillUtil(x+1, y+1); // RT
if ( y + 1 < colCounter && x - 1 >= 0 )
floodFillUtil(x-1, y+1); // LT
if ( y - 1 >= 0 && x - 1 >= 0 )
floodFillUtil(x-1, y-1); // BL
if ( x + 1 < rowCounter && y - 1 >= 0 )
floodFillUtil(x+1, y-1); // BR
}
int main()
{
//freopen("input.txt", "r", stdin);
//freopen("output.txt", "w", stdout);
scanf("%d", &testcase);
getchar();
getchar();
for(int i = 1; i <= testcase; ++i)
{
pixel = new char*[maxX];
rowCounter = 0;
colCounter = 0;
int m, n;
int queryI, queryJ;
char temp[maxX];
for(m = 0 ; m < maxX && gets(temp) ; m++)
{
if(strlen(temp) == 0) {
break;
}
if (temp[0] == 'L' || temp[0] == 'W')
{
++ rowCounter;
colCounter = strlen(temp);
pixel[m] = new char[colCounter + 1];
strcpy(pixel[m], temp);
}
else
{
sscanf(temp, "%d %d" ,&queryI, &queryJ);
for (int k = 0; k < rowCounter; ++ k)
strcpy(waterland[k], pixel[k]); //copy to waterland for BFS
floodFillUtil(queryI - 1, queryJ - 1);
printf("%d\n", wetlandCount);
wetlandCount = 0;
}
memset( temp, '\0', sizeof(temp));
}
if(i < testcase)
printf("\n");
}
return 0;
}
Code: Select all
#include<stdio.h>
#include<string.h>
char str[120];
char A[120][120], B[120][120];
int N, count, M;
int rx[]={-1, -1, -1, 0, 0, 1, 1, 1};
int ry[]={-1, 0, 1, -1, 1, -1, 0, 1};
void traverse(int x, int y)
{
int dx, dy, i;
count++;
B[x][y]=1;
for( i = 0; i < 8; i++) {
dx = x + rx[i];
dy = y + ry[i];
if(dx>=0 && dx<N && dy>=0 && dy<M && A[dx][dy]=='W' && B[dx][dy]==0)
traverse(dx, dy);
}
}
void readCase()
{
int i = 0, flag = 0, j, k, p, l;
//memset(B, 0, sizeof(B));
memset(A, 0, sizeof(A));
while(1) {
gets(str);
l = strlen(str);
if(!l) {
break;
}
if(str[0]=='W' || str[0] == 'L')
{
strcpy(A[i], str);
//strcpy(B[i], A[i]);
M = l;
}
else {
sscanf(str, "%d %d", &j, &k);
if(flag==0) {
N= i;
flag = 1;
}
count=0;
if((j-1)>= 0 && (k-1) >=0 && A[j-1][k-1] == 'W') {
memset(B, 0, sizeof(B));
traverse(j-1,k-1);
}
printf("%d\n", count);
}
i++;
}
}
int main()
{
int T, Case;
scanf("%d", &T);
getchar();
getchar();
for(Case = 1; Case <= T; Case++) {
readCase();
}
return 0;
}