만드는 중입니다

아직 만드는 중이라 바뀔 수 있습니다

조명

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

요약
지그재그 도로의 구간 길이 a_i가 주어질 때, 토끼가 도로를 따라 이동하며 빛이 그리는 자취를 가장 적은 수의 선분으로 나타내는 문제입니다.
난이도

어려움10점 중 8점

유형
기하, 투 포인터, 구현
정답자
아직 제출이 없습니다

문제

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

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

도로는 다음과 같이 생겼다.

  • (0,0)(0, 0)에서 시작하여 오른쪽으로 기울기 11, 길이 2a1\sqrt{2}a_1인 선분이 1번째 도로다.
  • i−1i-1번째 도로의 오른쪽 끝점에서 시작하여 오른쪽으로 기울기 (−1)i−1(-1)^{i-1}, 길이 2ai\sqrt{2}a_i인 선분이 ii번째 도로다. (2≤i≤N2 \le i \le N)
  • 1번째 도로의 기울기는 11, NN번째 도로의 기울기는 −1-1이다. 따라서 NN은 짝수다.
  • 1번째 도로의 왼쪽 끝점에서 왼쪽으로 기울기 −1-1인 반직선이 있다.
  • NN번째 도로의 오른쪽 끝점에서 오른쪽으로 기울기 11인 반직선이 있다.

예제 1의 도로 형태

예를 들어 수학토끼가 x=2x=2에 있으면 조명은 (2,2)(2, 2)에 놓이고, 이때 조명이 비추는 부분은 0≤x≤60 \le x \le 6이다.

수학토끼는 x=0x=0에서 출발하여 도로를 따라 오른쪽으로 x=∑i=1Naix=\sum_{i=1}^N a_i까지 이동한다. 조명의 자취는 유한 개의 선분의 합집합으로 나타낼 수 있는 연결된 곡선이다. 조명의 자취를 최소 개수의 선분으로 표현하는 프로그램을 작성하여라.

입력

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

두 번째 줄에 NN개의 양의 정수 a1,a2,⋯ ,aNa_1, a_2, \cdots, a_N이 공백으로 구분되어 주어진다.

출력

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

두 번째 줄부터 한 줄에 선분 하나씩 aia_i bib_i cic_i did_i 형태로 출력한다. ii번째 선분은 (ai,bi)(a_i, b_i)와 (ci,di)(c_i, d_i)를 잇는 선분이다. ai≤cia_i \le c_i를 만족해야 하며, a1≤a2≤⋯a_1 \le a_2 \le \cdots를 만족해야 한다. 이러한 출력은 유일하며, 모든 값이 정수임을 증명할 수 있다.

제한

  • 2≤N≤2×1052 \le N \le 2 \times 10^5
  • 2≤D≤∑i=1Nai2 \le D \le \sum_{i=1}^N a_i
  • 2≤ai≤1092 \le a_i \le 10^9 (1≤i≤N1 \le i \le N)
  • NN, DD, aia_i는 모두 짝수이다.

예제1

  1. 예제 1

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