Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <bits/stdc++.h>
- using namespace std;
- long long n, m, k, x, y, ans, dx[5] = {0, 1, 0, -1, 0}, dy[5] = {1, 0, -1, 0, 1};
- map <pair<int, int>, int> a;
- int main() {
- ios_base::sync_with_stdio(0);
- cin.tie(0);
- cin >> n >> m >> k;
- for (int i = 0; i < k; ++i)
- cin >> x >> y,
- a[{x - 1, y - 1}] = 1;
- if (n*m <= 1e5) {
- int c = 1, x = 0, y = 0, z = 0;
- while (c + k < n*m && c) {
- if (x + dx[z] >= 0 && x + dx[z] < n && y + dy[z] >=0 && y + dy[z] < m)
- if (x + dx[z + 1] >= 0 && x + dx[z + 1] < n && y + dy[z + 1] >=0 && y + dy[z + 1] < m)
- if (a[{x + dx[z], y + dy[z]}] == a[{x + dx[z + 1], y + dy[z + 1]}])
- c = -1;
- if (!a[{x + dx[z], y + dy[z]}] && x + dx[z] >= 0 && x + dx[z] < n && y + dy[z] >=0 && y + dy[z] < m)
- x += dx[z],
- y += dy[z];
- else
- if (x + dx[z + 1] >= 0 && x + dx[z + 1] < n && y + dy[z + 1] >=0 && y + dy[z + 1] < m)
- x += dx[z + 1],
- y += dy[z + 1],
- z = (z + 1)%4;
- else
- c = -1;
- ++c;
- }
- if (c + k == n*m)
- ans = 1;
- }
- cout <<(ans ? "Yes" : "No");
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement