곰팡이가 이동하는 것을 보면 좌푯값 i, j의 i+j가 짝수인 줄과 홀수인 줄이 독립적이라는 것을 알 수 있다.
그리고 시간이 무한히 흘러간다고 가정하면 곰팡이가 한번 증식할 때마다 i의 좌표가 짝수->홀수, 홀수->짝수로 감을 알 수 있다.
따라서 초기 곰팡이의 위치가 4가지 경우가 모두 있으면 된다.
i+j가 홀수고 i가 홀수
i+j가 홀수고 i가 짝수
i+j가 짝수고 i가 홀수
i+j가 짝수고 i가 짝수
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 | #include <stdio.h> #include <string.h> using namespace std; bool chk[2][2]; int main(void) { int n, m, k; scanf("%d %d %d", &n, &m, &k); for (int i = 0; i < k; i++){ int a, b; scanf("%d %d", &a, &b); chk[(a + b) % 2][b % 2] = true; } for (int i = 0; i < 2; i++){ for (int j = 0; j < 2; j++){ if (!chk[i][j]){ printf("NO\n"); return 0;; } } } printf("YES\n"); return 0; } | cs |
'알고리즘 > PS' 카테고리의 다른 글
[백준 13901] 로봇 (0) | 2018.06.04 |
---|---|
[백준 10539] 수빈이와 수열 (0) | 2018.05.27 |
[백준 14670] 병약한 영정 (0) | 2018.05.26 |
[백준 14675] 단절점과 단절선 (0) | 2018.05.26 |
[백준 12840] 창용이의 시계 (0) | 2018.05.23 |