아직 만들고 있는 페이지입니다.

이 페이지는 아직 만드는 중입니다. 보이는 내용은 바뀔 수 있습니다.

Рассадка зверей

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

요약
원형으로 놓인 n개 자리 각각에 대해 거리 d 이내에 있는 여우 수가 주어질 때, 이를 만족하는 여우와 늑대의 배치를 찾는다.
난이도

보통10점 중 7점

유형
슬라이딩 윈도우, 구현, 그리디
정답자
아직 제출이 없습니다

문제

Сегодня Колобок созвал всех волков и лис к себе в гости на чаепитие. Чаепитие пройдет за круглым столом, за которым всего nn мест. Колобок хочет рассадить зверей по-особенному --- так, чтобы волки не сидели только с волками, а лисы только с лисами. Поэтому для каждого места он записал одно целое число --- сколько лис должно сидеть на расстоянии не более dd от этого места, включая это место.

Два места находятся на расстоянии не более dd, если между ними встречаются не более d−1d-1 места при движении по или против часовой стрелки от одного к другому. Таким образом, для заданного места всего существует 2d+12d+1 место, находящееся на расстоянии не более dd от него.

Теперь он хочет придумать какую-нибудь рассадку зверей, удовлетворяющую этим ограничениям.

입력

В первой строке находятся два натуральных числа nn, dd (3≤n≤1053 \le n \le 10^5, 3≤2d+1≤n3 \le 2 d + 1 \le n) --- количество мест за круглым столом и расстояние dd.

В следующей строке находятся nn неотрицательных целых чисел a_ia\_i (0≤a_i≤2d+10 \le a\_i \le 2 d + 1) --- количество лис на расстоянии не более dd от этого места, включая это место. Информация о местах перечислена в порядке их следования по кругу.

출력

Если решения не существует, выведите <<NO>>, иначе в первой строке выведите <<YES>>, а в следующей nn чисел: 11 в том случае, если на этом месте сидит лиса, и 00, если на этом месте сидит волк. Если ответов несколько, разрешается вывести любой.

예제3

  1. 예제 1

    입력
    5 1
    2 2 1 2 2
    
    예상 출력
    YES
    1 0 1 0 1
    
  2. 예제 2

    입력
    9 2
    3 4 4 3 3 2 2 2 2
    
    예상 출력
    YES
    1 0 1 1 1 0 0 0 1
    
  3. 예제 3

    입력
    6 1
    3 3 3 3 3 1
    
    예상 출력
    NO