조명

시간 제한4초메모리 제한1024 MB

요약
지그재그 도로의 각 구간 길이가 주어질 때, 조명이 비추는 가로 폭이 D 이상이 되는 최소 높이로 조명을 두고 이동할 때 생기는 자취를 최소 개수의 선분으로 표현하는 문제다.
난이도

어려움10점 중 8점

유형
기하, 구현, 수학, 시뮬레이션
정답자
아직 제출이 없습니다

문제

수학토끼는 xyxy평면에 살고 있는 서울과학고 학생이다. 편의상 xx가 증가하는 방향을 오른쪽, yy가 증가하는 방향을 위쪽이라고 하자. 암흑 공포증이 있는 수학토끼는 도로를 이동하며 조명을 켜고 있어야만 한다. 구체적으로, 조명의 위치는 다음과 같은 규칙을 따른다.

  • 수학토끼와 조명은 xyxy평면에 있는 점으로 가정한다.
  • 수학토끼의 위치는 도로에 있는 점이며, 수학토끼로부터 연직 위로 y(≥0)y(\ge 0)만큼 떨어진 지점에 조명이 있다.
  • 이 조명은 아래 방향으로 빛을 내며, 연직 아래를 기준으로 좌우 최대 4545도까지 빛을 낸다.
  • 빛은 조명에서 출발하여 도로에 평행하지 않게 입사할 때까지 반직선 형태로 이동한다고 가정한다.
  • 수학토끼는 조명의 높이 yy를 조명이 비추는 영역의 xx좌표의 최솟값과 최댓값의 차이가 DD 이상이 되는 최소 높이로 설정한다. 이때, DD는 고정된 짝수인 양의 정수다.

N(≥2)N(\ge 2)개의 짝수인 양의 정수 a_1,a_2,⋯ ,a_Na\_1, a\_2, \cdots, a\_N이 주어질 때 수학토끼가 걸어갈 도로는 다음과 같이 생겼다.

  • (0,0)(0, 0)에서 시작하여 오른쪽으로 기울기 11, 길이 2a_1\sqrt{2}a\_1인 선분 형태의 도로가 있다. 이를 11번째 도로라고 한다.
  • i−1i-1번째 도로의 오른쪽 끝점에서 시작하여 오른쪽으로 기울기 (−1)i−1(-1)^{i-1}, 길이 2a_i\sqrt{2} a\_i인 선분 형태의 도로가 있다. 이를 ii번째 도로라고 한다. (2≤i≤N)(2 \le i \le N)
  • 11번째 도로의 기울기와 NN번째 도로의 기울기는 각각 11, −1-1임이 보장된다. 즉, NN은 짝수이다.
  • 11번째 도로의 왼쪽 끝점에서 시작하여 왼쪽으로 기울기 −1-1의 반직선 형태의 도로가 있다.
  • NN번째 도로의 오른쪽 끝점에서 시작하여 오른쪽으로 기울기 11의 반직선 형태의 도로가 있다.

예제 1의 도로 형태

수학토끼의 위치에 따라 조명이 도로 위에 놓일 수도 있음에 유의하자. 예를 들어, 위의 그림에 그려진 예제 1의 경우, 수학토끼가 x=2x=2에 있는 경우 조명은 (2,2)(2, 2) 지점에 놓이고, 이때 조명이 비추는 부분은 0≤x≤60 \le x \le 6이다(예제 설명 참고).

수학토끼는 x=0x=0에서 시작하여 오른쪽으로 도로를 따라 x=∑_i=1Na_ix=\sum\_{i=1}^N a\_i까지 이동한다. 이때, 조명의 자취는 유한 개의 선분의 합집합으로 표현 가능한 연결된 곡선을 이룬다. 조명의 자취를 최소 개수의 선분으로 표현하는 프로그램을 작성하여라.

입력

첫 번째 줄에 NN, DD가 공백으로 구분되어 주어진다.

두 번째 줄에 NN개의 양의 정수 a_1,a_2,⋯ ,a_Na\_1, a\_2, \cdots, a\_N이 공백으로 구분되어 주어진다.

출력

첫 번째 줄에 조명의 자취를 표현하기 위한 선분의 최소 개수를 출력한다.

두 번째 줄부터 한 줄에 선분 한 개씩 a_ia\_i b_ib\_i c_ic\_i d_id\_i 형태로 출력한다. ii번째 선분은 (a_i,b_i)(a\_i, b\_i)와 (c_i,d_i)(c\_i, d\_i)를 연결하는 선분이라는 뜻이다. a_i≤c_ia\_i \le c\_i를 만족해야 하며, a_1≤a_2≤⋯a\_1 \le a\_2 \le \cdots를 만족해야 한다. 이러한 출력은 유일하며, 모든 값이 정수임을 증명할 수 있다.

제한

  • 2≤N≤2×1052 \le N \le 2 \times 10^5
  • 2≤D≤∑_i=1Na_i2 \le D \le \sum\_{i=1}^N a\_i
  • 2≤a_i≤1092 \le a\_i \le 10^9 (1≤i≤N)(1 \le i \le N)
  • NN, DD, a_ia\_i는 짝수 (1≤i≤N)(1 \le i \le N)

예제1

  1. 예제 1

    입력
    4 4
    2 4 6 2
    
    예상 출력
    3
    0 4 2 2
    2 2 10 2
    10 2 14 6