CCCPaste

Untitled

#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;
}