드래곤 커브

101 곱하기 101 격자 위에 N개의 드래곤 커브가 지나는 선분을 만들고 지나간 격자점을 표시한 뒤, 네 꼭짓점이 모두 표시된 단위 정사각형의 개수를 센다.

보통6구현재귀시뮬레이션수학아직 제출이 없습니다시간 제한1초메모리 제한512 MB

문제

드래곤 커브는 다음 세 가지 값으로 정해지고, 이차원 좌표 평면 위에서 정의된다. 좌표 평면의 x축은 → 방향이고, y축은 ↓ 방향이다.

  1. 시작 점
  2. 시작 방향
  3. 세대

0세대 드래곤 커브는 길이가 1인 선분 하나다. 아래 그림은 (0,0)(0, 0)에서 시작하고 시작 방향이 오른쪽인 0세대 드래곤 커브다.

1세대 드래곤 커브는 0세대 드래곤 커브를 끝 점 기준으로 시계 방향으로 90도 회전시킨 다음, 0세대 드래곤 커브의 끝 점에 붙인 것이다. 끝 점은 시작 점에서 선분을 따라 이동했을 때 가장 멀리 떨어진 점이다.

2세대 드래곤 커브도 1세대를 만든 방법을 그대로 써서 만든다. 파란색 선분이 새로 붙인 선분이다.

3세대 드래곤 커브는 2세대 드래곤 커브로 만든다. 아래 그림이 3세대 드래곤 커브다.

즉, KK세대 드래곤 커브(K>1K > 1)는 K1K-1세대 드래곤 커브를 끝 점 기준으로 시계 방향으로 90도 회전시킨 다음 그 끝 점에 붙인 것이다.

크기가 100×100100 \times 100인 격자 위에 드래곤 커브가 NN개 있다. 네 꼭짓점이 모두 드래곤 커브의 일부인 크기 1×11 \times 1 정사각형의 개수를 구하는 프로그램을 작성하시오. 격자의 좌표는 (x,y)(x, y)로 나타내고, 0x1000 \le x \le 1000y1000 \le y \le 100을 만족하는 좌표만 유효하다.

입력

첫째 줄에 드래곤 커브의 개수 NN (1N201 \le N \le 20)이 주어진다. 둘째 줄부터 NN개의 줄에 드래곤 커브의 정보가 네 정수 xx, yy, dd, gg로 주어진다. xxyy는 드래곤 커브의 시작 점, dd는 시작 방향, gg는 세대다. (0x,y1000 \le x, y \le 100, 0d30 \le d \le 3, 0g100 \le g \le 10)

입력으로 주어지는 드래곤 커브는 격자 밖으로 벗어나지 않는다. 드래곤 커브는 서로 겹칠 수 있다.

방향 dd는 0, 1, 2, 3 중 하나이고 다음을 뜻한다.

  • 0: x좌표가 증가하는 방향 (→)
  • 1: y좌표가 감소하는 방향 (↑)
  • 2: x좌표가 감소하는 방향 (←)
  • 3: y좌표가 증가하는 방향 (↓)

출력

첫째 줄에 네 꼭짓점이 모두 드래곤 커브의 일부인 크기 1×11 \times 1 정사각형의 개수를 출력한다.

힌트

드래곤 커브가 3개인 예제드래곤 커브가 4개인 예제