#include <bits/stdc++.h>
using namespace std;
char a[2000][2000];
int b[2000][2000];
char c[1000];
int d;
int n,m;
void nhap()
{
cin>>m>>n;
for(int i=1;i<=m;i++)
for(int j=1;j<=n;j++){
cin>>a[i][j];
//cout<<a[i][j];
}
}
void tao_vien()
{
for(int i=0;i<=m+1;i++)
{
b[i][0]=3;
b[i][n+1]=3;
}
for(int i=0;i<=n+1;i++)
{
b[0][i]=3;
b[m+1][i]=3;
}
}
void truyvet(int x,int y,int k)
{
for(int i=d;i>=1;i--)
{
if(c[i] == 'W') y++;
else if(c[i] == 'E') y--;
else if(c[i] == 'S') x--;
else if(c[i] == 'N') x++;
b[x][y]=k;
}
}
void di(int x,int y)
{
d=0;
while(b[x][y]==0)
{
d++; c[d]= a[x][y]; b[x][y]=1;
if(a[x][y] == 'W') y--;
else if(a[x][y] == 'E') y++;
else if(a[x][y] == 'N') x--;
else if(a[x][y] == 'S') x++;
}
if(b[x][y]==3 || b[x][y]==2) truyvet(x,y,2);
}
void giai()
{
tao_vien();
for(int i=1;i<=m;i++)
for(int j=1;j<=n;j++)
if(b[i][j]==0) di(i,j);
int res=0;
for(int i=1;i<=m;i++)
{
for(int j=1;j<=n;j++)
{
if(b[i][j]==1) res++;
}
}
cout<<res;
}
int main()
{
ios_base::sync_with_stdio(0);
cout.tie(0); cin.tie(0);
freopen("itable.inp","r",stdin);
freopen("itable.out","w",stdout);
nhap();
giai();
}
* Chuyên dạy lập trình ONLINE cho học sinh THCS, THPT *.
Mọi giao lưu, trao đổi, xin liên hệ: Lê Quang Vinh - zalo: 037.803.8755.
Page: Lớp học Code Sky
Group FB1: Ôn thi HSG9 - THTB - TS10 chuyên tin
Group FB2: Học Scratch - Ôn thi Tin học trẻ bảng A
Thứ Ba, 3 tháng 5, 2022
ITABLE C++
Đăng ký:
Đăng Nhận xét (Atom)
Không có nhận xét nào:
Đăng nhận xét
Lưu ý: Chỉ thành viên của blog này mới được đăng nhận xét.