Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <bits/stdc++.h>
- using namespace std;
- struct k {
- int r, c;
- };
- int main() {
- int l, w, n, bn, cnt = 0;
- cin >> l >> w >> n >> bn;
- vector<k> bk;
- vector<set<int>> done;
- for (int i = 0; i < bn; ++i) {
- int r, c;
- cin >> r >> c;
- r -= 1;
- c -= 1;
- bk.push_back({r, c});
- done[r].insert(c);
- }
- int op[4][2] = {{0, 1}, {0, -1}, {1, 0}, {-1, 0}};
- while (cnt < n) {
- for (auto it = bk.begin(); it != bk.end(); ++it) {
- k b = *it;
- bk.erase(it);
- for (int j = 0; j < 4; ++j) {
- int r = b.r + op[j][0];
- int c = b.c + op[j][1];
- if (!(r == l || r < 0 || c == w || c < 0) && done[r].find(c) == done[r].end()) {
- cnt++;
- bk.push_back({b.r, b.c});
- done[r].insert(c);
- }
- }
- }
- }
- cout << cnt;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement