https://www.acmicpc.net/problem/5556
5556번: 타일
문제 상근이는 타일로 작품을 만드는 예술가이다. 크기가 N × N인 작품을 만들기 위해서 상근이는 1 × 1 타일을 사용한다. 색상은 빨강, 파랑, 노랑 중 하나이다. 작품은 가장 바깥쪽에 빨간색을 �
www.acmicpc.net
타일을 종이접기하듯이 4번접어보자(대각선, 중앙선). 그러면 8개의 직각이등변삼각형으로 분할 할 수 있는데, 대칭이기 때문에 같은색의 칸끼리 겹치게 된다.
모든 주어진 좌표를 왼쪽 위의 삼각형으로 옮기면 간단하게 문제를 풀 수 있다.
코드는 다음과 같다.
#include <cstdio>
int main(void){
int N,K,x,y,temp;
scanf("%d %d",&N,&K);
for(int i=0; i<K; i++){
scanf("%d %d",&x,&y);
if(x>(N+1)/2)
x = N+1-x;
if(y>(N+1)/2)
y = N+1-y;
if(x<y){
temp = x;
x = y;
y = temp;
}
if(y%3==1)
printf("1\n");
if(y%3==2)
printf("2\n");
if(y%3==0)
printf("3\n");
}
}
'알고리즘 문제' 카테고리의 다른 글
[C/C++ 백준 11650번] 좌표 정렬하기 (Silver 5) (Class 2) (0) | 2020.07.29 |
---|---|
[C/C++ 백준 11866번] 요세푸스 문제 0 (Silver 4) (Class 2) (0) | 2020.07.28 |
[C/C++ 백준 5212번] 지구온난화 (Silver 2) (0) | 2020.07.26 |
[C/C++ 백준 1920번] 수찾기 (Silver 4) (Class 2) (0) | 2020.07.26 |
[C/C++ 백준 1259번] 팰린드롬수 (Bronze 1) (Class 2) (0) | 2020.07.26 |