#include #include #include using namespace std; int main() { ios_base::sync_with_stdio(false); int w, l, n, b, s = 0; cin >> w >> l >> n >> b; bool visited[1001][1001]; for (int i = 0; i < w; i++) { for (int j = 0; j < l; j++) { visited[i][j] = false; } } int di[] = { 1, -1, 0, 0 }; int dj[] = { 0, 0, 1, -1 }; queue>> q; vector> v; for (int i = 0; i < b; i++) { int a, b2; cin >> a >> b2; v.push_back(make_pair(a - 1, b2 - 1)); visited[a-1][b2-1] = true; } q.push(v); int b2 = b; while (!q.empty()) { vector> k, v2; k = q.front(); q.pop(); for (int i = 0; i < k.size(); i++) { for (int j = 0; j < 4; j++) { int c, p; c = k[i].first + di[j]; p = k[i].second + dj[j]; if (c >= 0 and c < w and p >= 0 and p < l and !visited[c][p]) { visited[c][p] = true; v2.push_back(make_pair(c, p)); b2++; } } } q.push(v2); s++; if (b2 >= n) { cout << s << endl; return 0; } } return 0; }