fork download
  1. /*
  2. * @Author: hungeazy
  3. * @Date: 2026-03-04 23:24:15
  4. * @Last Modified by: hungeazy
  5. * @Last Modified time: 2026-03-16 23:48:11
  6. */
  7. #include <bits/stdc++.h>
  8. using namespace std;
  9. const int N = (int)1e3+10;
  10. int a[N][N], pre[N][N];
  11.  
  12. int get(int x, int y, int u, int v) {
  13. return pre[u][v]-pre[x-1][v]-pre[u][y-1]+pre[x-1][y-1];
  14. }
  15.  
  16. int main()
  17. {
  18. int n,m,k;
  19. cin >> n >> m >> k;
  20. for (int i = 1; i <= n; i++)
  21. for (int j = 1; j <= m; j++)
  22. {
  23. char x;
  24. cin >> x;
  25. if (x == '*') a[i][j] = 1;
  26. else a[i][j] = 0;
  27. }
  28. for (int i = 1; i <= n; i++)
  29. for (int j = 1; j <= m; j++)
  30. pre[i][j] = pre[i-1][j]+pre[i][j-1]-pre[i-1][j-1]+a[i][j];
  31. int res = 0;
  32. for (int i = 1; i <= n-k+1; i++)
  33. for (int j = 1; j <= m-k+1; j++)
  34. {
  35. int sum = get(i,j,i+k-1,j+k-1);
  36. int row1 = get(i,j,i,j+k-1), row2 = get(i+k-1,j,i+k-1,j+k-1);
  37. int col1 = get(i,j,i+k-1,j), col2 = get(i,j+k-1,i+k-1,j+k-1);
  38. int val1 = a[i][j], val2 = a[i][j+k-1], val3 = a[i+k-1][j], val4 = a[i+k-1][j+k-1];
  39. int ans = sum-row1-row2-col1-col2+val1+val2+val3+val4;
  40. if (res < ans)
  41. res = ans;
  42. }
  43. cout << res;
  44. return 0;
  45. }
Success #stdin #stdout 0.01s 5220KB
stdin
Standard input is empty
stdout
Standard output is empty