만드는 중입니다

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

라라와 램프

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

요약
삼각형 격자에 켜진 전구들이 주어질 때, 세 방향 중 한 행의 전구를 모두 뒤집는 연산으로 전부 끌 수 있는지 판별합니다.
난이도

보통10점 중 6점

유형
구현, 수학, 그리디
정답자
아직 제출이 없습니다

문제

LaLa\color{blue}{\text{LaLa}} 가 애완동물 Leo\color{brown}{\text{Leo}} 의 등에 누워 잠이 들려고 했을 때, 램프가 엉망이 되어 있다는 것을 알아챘다. 이는 틀림없이 여동생 LiLi\color{purple}{\text{LiLi}} 의 짓이었다.

램프는 정삼각형 격자로 모델링할 수 있다. 각 칸에는 켜짐 또는 꺼짐 상태의 전구가 하나씩 있다.

LaLa\color{blue}{\text{LaLa}} 는 램프를 끄고 싶어 한다(즉, 모든 전구를 꺼짐 상태로 만든다). LaLa\color{blue}{\text{LaLa}} 는 램프의 변과 평행한 세 방향 중 하나를 고르고, 그 방향과 평행한 행 하나를 골라 그 행에 있는 모든 전구의 상태를 뒤집을 수 있다(켜짐은 꺼짐으로, 꺼짐은 켜짐으로). 이때 magic\color{red}{\text{m}} \color{brown}{\text{a}} \color{orange}{\text{g}} \color{blue}{\text{i}} \color{magenta}{\text{c}} 를 사용한다. LaLa\color{blue}{\text{LaLa}} 는 직접 다가가 전구를 하나씩 끌 수도 있지만, 그렇게 하고 싶지는 않다.

LaLa\color{blue}{\text{LaLa}} 가 magic\color{red}{\text{m}} \color{brown}{\text{a}} \color{orange}{\text{g}} \color{blue}{\text{i}} \color{magenta}{\text{c}} 로 램프를 끌 수 있는지 판별하는 프로그램을 작성하라.

입력

입력은 다음 형식으로 주어진다.

NN

S0S_0

S1S_1

⋮\vdots

SN−1S_{N-1}

여기서 NN 은 램프 한 변에 있는 전구의 개수이고, SiS_i 는 ii 번째 행의 전구 초기 상태를 나타내는 길이 i+1i+1 의 이진 문자열이다. SiS_i 의 jj 번째 문자가 '1' 이면 그리고 그때만 jj 번째 전구가 켜져 있다.

입력은 다음 제약을 만족한다.

  • NN 은 정수이다.
  • 2≤N≤20002 \le N \le 2000

출력

LaLa\color{blue}{\text{LaLa}} 가 magic\color{red}{\text{m}} \color{brown}{\text{a}} \color{orange}{\text{g}} \color{blue}{\text{i}} \color{magenta}{\text{c}} 로 램프를 끌 수 있으면 "Yes" 를 한 줄에 출력한다. 그렇지 않으면 "No" 를 한 줄에 출력한다. 각 글자는 대문자와 소문자 중 어느 쪽으로 출력해도 된다.

힌트

아래 그림은 LaLa\color{blue}{\text{LaLa}} 가 램프를 끄기 위해 시전하는 magic\color{red}{\text{m}} \color{brown}{\text{a}} \color{orange}{\text{g}} \color{blue}{\text{i}} \color{magenta}{\text{c}} 의 순서이다. 빈 원은 꺼진 전구, 노란 원은 켜진 전구이며, 빨간 선은 마법에 쓰려고 고른 행이다.

Step 0Step 1Step 2
Step 3Step 4Step 5
Step 6

예제1

  1. 예제 1

    입력
    6
    0
    00
    000
    0110
    00100
    000000
    
    예상 출력
    Yes