wa了两次,太不小心了,讲道理挺难受
http://codeforces.com/contest/6/submit
#include<iostream>
#include<cstring>
#include<cstdio>
#include<algorithm>
#include<vector>
#include<set>
#include<map>
#include<queue>
#include<cmath>
#define ll long long
#define mod 1000000007
#define inf 0x3f3f3f3f
using namespace std;
#define ll long long
int main()
{
char a[105][105];
int m, n;
int ans = 0;
map<char, int> vis;
scanf("%d%d",&n,&m);
char c;
cin>>c;
vis[c] = 1;
for(int i = 1; i <= n; i ++)
for(int j = 1; j <= m; j ++)
cin>>a[i][j];
for(int i = 1; i <= n; i ++)
for(int j = 1; j <= m; j ++)
{
if(a[i][j] == c)
{
if(! vis[a[i-1][j]] && a[i-1][j] != '.' && i-1 >= 1)
{
vis[a[i-1][j]] = 1;
ans ++;
}
if(! vis[a[i+1][j]] && a[i+1][j] != '.' && i+1<=n)
{
vis[a[i+1][j]] = 1;
ans ++;
}
if(! vis[a[i][j-1]] && a[i][j-1] != '.' && j-1>=1)
{
vis[a[i][j-1]] = 1;
ans ++;
}
if(! vis[a[i][j+1]] && a[i][j+1] != '.' && j+1<=m)
{
vis[a[i][j+1]] = 1;
ans ++;
}
}
}
cout<<ans<<endl;
return 0;
}