Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <bits/stdc++.h>
- using namespace std;
- int main() {
- int k, n;
- cin >> n >> k;
- int a[n][n];
- int a1[n][n];
- int a2[n][n];
- int b[n][n];
- int c[n][n];
- string s;
- for (int i = 0; i < n; i++) {
- cin >> s;
- for (int j = 0; j < n; j++)
- if (s[j] == '#') {
- a[i][j] = 0;
- a1[i][j] = 0;
- a2[i][j] = 0;
- b[i][j] = 0;
- c[i][j] = 0;
- } else {
- a[i][j] = 1;
- a1[i][j] = 1;
- a2[i][j] = 1;
- b[i][j] = 0;
- c[i][j] = 0;
- }
- };
- for (int i = 0; i < n; i++)
- for (int j = 0; j < n; j++) {
- if (a1[i][j]) {
- if (j != 0 && a1[i][j - 1])
- a1[i][j] += a1[i][j - 1];
- }
- }
- for (int i = 0; i < n; i++)
- for (int j = 0; j < n; j++) {
- if (a2[j][i]) {
- if (j != 0 && a2[j - 1][i])
- a2[j][i] += a2[j - 1][i];
- }
- }
- for (int i = 0; i < n; i++)
- for (int j = n - 1; j >= 0; j--) {
- if (a1[i][j] >= k) {
- for (int q = 1; q <= a1[i][j]; q++) {
- b[i][j - q + 1] = min(q, k);
- }
- for (int q = 1; q <= a1[i][j]; q++) {
- b[i][j - a1[i][j] + q] = min(b[i][j - a1[i][j] + q], min(q, a1[i][j] - k + 1));
- }
- j = j - a1[i][j] + 1;
- }
- }
- for (int i = 0; i < n; i++)
- for (int j = n - 1; j >= 0; j--) {
- if (a2[j][i] >= k) {
- for (int q = 1; q <= a2[j][i]; q++) {
- c[j - q + 1][i] = min(q, k);
- }
- for (int q = 1; q <= a2[j][i]; q++) {
- c[j - a2[j][i] + q][i] = min(c[j - a2[j][i] + q][i], min(q, a2[j][i] - k + 1));
- }
- j = j - a2[j][i] + 1;
- }
- }
- for (int i = 0; i < n; i++)
- for (int j = 0; j < n; j++) {
- b[i][j] += c[i][j];
- }
- int x = 0, y = 0, kol = 0;
- /*for (int i = 0; i < n; i++) {
- for (int j = 0; j < n; j++) {
- cout << c[i][j];
- }
- cout << endl;
- }*/
- for (int i = 0; i < n; i++)
- for (int j = 0; j < n; j++) {
- if (b[i][j] > kol) {
- kol = b[i][j];
- x = i;
- y = j;
- }
- }
- x++;
- y++;
- cout << x << " " << y;
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement