80分,不知道哪错了。
#include <bits/stdc++.h>
using namespace std;
const int N = 110;
int n,m,k,ans = 0;
int mp[N][N];
int dfs (int x,int y) {
int sum = 2;
for (int i = 0;i < k;i++) {
if (mp[x+i][y] != 0) {
sum --;
break;
}
}
for (int i = 0;i < k;i++) {
if (mp[x][y+i] != 0) {
sum --;
break;
}
}
return sum;
}
int main () {
memset (mp,0xff,sizeof (mp));
cin >> n >> m >> k;
for (int i = 1;i <= n;i++) {
for (int j = 1;j <= n;j++) {
char ch;
cin >> ch;
if (ch == '.') mp[i][j] = 0;
else mp[i][j] = 1;
}
}
for (int i = 1;i <= n;i++) {
for (int j = 1;j <= m;j++) {
if (mp[i][j] == 0) ans += dfs (i,j);
}
}
cout << ans << endl;
return 0;
}