특이한 형태로 퍼져나가는 곰팡이가 있을 때 맵 전체를 덮는 경우가 있는지 없는지 물어보는 문제다.
힌트 1. 시간제한이 없다.
이 말은 즉 특정 조건을 만족하면 무조건 맵을 덮는다는 뜻이다.
힌트 2. 2번 예
2번을 더 진행시켜 보면 이전에 덮었던 곳을 유지한 채 바깥으로 점점 확장한다.
2번 예에서 조금 다른 경우를 생각해보자. 체스판에서 같은 색에 속하지만 가로나 세로로 짝수만큼 차이나는 곳에 곰팡이가 존재할 경우
이렇게 주기적으로 빈 곳이 생긴다.
결론적으로 맵을 체스판으로 생각했을 때 각각의 색에 가로나 세로로 홀수만큼 차이나는 곳에 곰팡이가 모두 존재한다면
무조건 곰팡이가 맵을 모두 덮는다.
<코드>
1 2 3 4 5 6 7 8 9 10 11 12 | #include<stdio.h> int n, m, k, x, y; bool c[2][2]; int main() { scanf("%d%d%d", &n, &m, &k); while (k--) { scanf("%d%d", &x, &y); c[(x + y) % 2][y % 2] = 1; } printf(c[0][0] & c[0][1] & c[1][0] & c[1][1] ? "YES\n" : "NO\n"); } | cs |
'BOJ' 카테고리의 다른 글
2570 비숍 (0) | 2017.08.30 |
---|---|
2316 도시 왕복하기 (0) | 2017.08.30 |
9333 돈 갚기 (0) | 2017.08.30 |
1765 닭싸움 팀 정하기 (0) | 2017.08.30 |
4/5 boj (0) | 2017.04.05 |