만드는 중입니다

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

간섭

면접 대비

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

요약
구간마다 주기 4의 +a, -a 패턴을 더하고, 주어진 위치에서 누적된 파동의 높이를 구합니다.
난이도

보통10점 중 5점

유형
누적 합, 수학, 구현
정답자
아직 제출이 없습니다

문제

물리는 정말 재미있을 수 있다! 어제 선생님이 간섭이 어떻게 일어나는지 설명해 주셨다. 두 파동이 겹치면 파동의 높이는 파동 전체 길이에 걸쳐 더해진다. 두 파동 모두 마루가 있으면 합성파의 마루는 더 높아진다. 같은 방식으로, 두 파동 모두 수면 아래로 내려가 골을 이루면 합성파의 골은 더 깊어진다. 엄밀히 말하면, 파동의 높이를 진폭이라 하고 두 마루 사이의 거리를 파장이라고 한다.

오늘 물리 선생님은 곧 수행할 실험의 설정을 설명한다. 선생님은 1차원 물 수조에 정상파를 만든다. 선생님은 물리 장치를 정밀하게 제어하므로, 모든 파동은 정확히 조절된 진폭을 가지며 주어진 길이의 구간에서만 생성된다. 각 파동의 파장은 항상 44이고, 첫 번째 양의 마루는 항상 구간의 첫 번째 인덱스에 있다. 진폭은 정수 지점에서만 측정한다. 예를 들어 진폭이 22이고 길이가 99인 파동은 2 0 -2 0 2 0 -2 0 2로 나타낼 수 있다. 어떤 지점에 파동이 없으면 그 지점의 진폭은 00이다. 여러분의 과제는 그 시점까지 만들어진 모든 파동을 고려하여, 수조의 주어진 지점에서 합성파의 높이가 얼마인지 예측하는 것이다.

그림 I.1: 샘플 입력 2의 세 파동 간섭. 검은 점은 합성파의 높이를 나타낸다.

입력

입력은 다음과 같다.

  • 첫 줄에 정수 nn과 ww가 주어진다(1≤n≤4 0001 \le n \le 4\,000, 1≤w≤1091 \le w \le 10^{9}). nn은 줄 수이고, ww는 수조의 너비이다.
  • 이후 nn개의 줄에는 파동 설명 또는 예측 질문이 하나씩 주어진다.
    • ! pp ℓ\ell aa: 시작 위치 pp, 길이 ℓ\ell(1≤p,ℓ≤w1 \le p, \ell \le w), 진폭 aa(1≤a≤1091 \le a \le 10^9)인 파동이다. p+ℓ−1≤wp+\ell-1 \le w가 항상 성립한다.
    • ? pp: 위치 pp(1≤p≤w1 \le p \le w)에서 합성파의 높이를 묻는 질문이다.

출력

각 예측 질문에 대해, 그 이전에 주어진 모든 파동이 만드는 합성파의 해당 위치 높이를 정수 하나로 한 줄에 출력한다.

예제4

  1. 예제 1

    입력
    4 10
    ! 2 7 1
    ? 9
    ? 7
    ? 6
    
    예상 출력
    0
    0
    1
    
  2. 예제 2

    입력
    7 10
    ! 2 6 1
    ! 3 8 2
    ! 5 2 3
    ? 6
    ! 5 5 4
    ? 8
    ? 9
    
    예상 출력
    1
    0
    2
    
  3. 예제 3

    입력
    6 12
    ! 1 7 1
    ! 7 3 2
    ? 6
    ? 7
    ? 8
    ? 10
    
    예상 출력
    0
    1
    0
    0
    
  4. 예제 4

    입력
    6 11
    ! 1 6 1
    ? 6
    ! 5 7 4
    ? 6
    ! 6 3 2
    ? 6
    
    예상 출력
    0
    0
    2