만드는 중입니다

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

전구

면접 대비

시간 제한1초메모리 제한512 MB

요약
이진 배열에 대해 구간 뒤집기, 0으로 설정, 1로 설정, 점 갱신을 M번 수행한 뒤 최종 배열을 출력한다.
난이도

쉬움10점 중 3점

유형
배열, 시뮬레이션, 구현, 완전 탐색
정답자
아직 제출이 없습니다

문제

NN개의 전구가 있고 맨 왼쪽에 있는 전구를 첫 번째라고 하자. 전구의 상태는 두 가지가 있으며 이를 숫자로 표현한다.

11은 전구가 켜져 있는 상태를 의미하고, 00은 전구가 꺼져 있는 상태를 의미한다.

전구를 제어하는 명령어가 1번부터 4번까지 4개가 있다. 아래 표는 각 명령어에 대한 설명이다.

1번 명령어 [ii xx] (1≤i≤N,0≤x≤1)(1 \le i \le N, 0 \le x \le 1)ii 번째 전구의 상태를 xx로 변경한다.
2번 명령어 [ll rr] (1≤l≤r≤N)(1 \le l \le r \le N)ll번째부터 rr번째까지의 전구의 상태를 변경한다. (켜져있는 전구는 끄고, 꺼져있는 전구는 킨다.)
3번 명령어 [ll rr] (1≤l≤r≤N)(1 \le l \le r \le N)ll번째부터 rr번째까지의 전구를 끈다.
4번 명령어 [ll rr] (1≤l≤r≤N)(1 \le l \le r \le N)ll번째부터 rr번째까지의 전구를 킨다.

주어지는 명령어를 다 수행한 결과 전구는 어떤 상태인지 알아보자.

입력

첫 번째 줄에 전구의 개수 NN와 입력되는 명령어의 개수 MM이 주어진다.

두 번째 줄에는 NN개의 전구가 현재 어떤 상태 ss인지 주어진다. (00은 꺼져있는 상태, 11은 켜져있는 상태)

33 번째 줄부터 M+2M + 2 번째 줄까지 세 개의 정수 a,b,ca, b, c가 들어온다.

aa는 aa번째 명령어를 의미하고 b,cb, c는 aa가 1인 경우는 각각 i,xi, x를 의미하고 aa가 2,3,42, 3, 4 중 하나면 각각 l,rl, r을 의미한다.

출력

모든 명령어를 수행한 후 전구가 어떤 상태인지 출력한다.

제한

  • 1≤N,M≤4,0001 \le N, M \le 4,000
  • 1≤a≤41 \le a \le 4
  • 0≤s,x≤10 \le s, x \le 1
  • 1≤l≤r≤N1 \le l \le r \le N
  • 1≤i≤N1 \le i \le N

예제2

  1. 예제 1

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

    입력
    8 6
    0 0 0 0 0 0 0 0
    1 2 1
    1 4 1
    2 2 4
    2 1 7
    3 5 8
    4 4 6
    
    예상 출력
    1 1 0 1 1 1 0 0