계단 수열과 쿼리
시간 제한2.5초메모리 제한1024 MB
정수 수열에 구간 덧셈이 주어질 때, 구간 안에서 인접한 차이가 모두 k인 가장 긴 연속 부분 수열의 길이를 구합니다.
문제
임의의 양의 정수 에 대해, 인접한 모든 수의 차이가 인 수열을 -계단 수열이라고 한다. 예를 들어 은 인접한 수의 차이가 모두 1이므로 -계단 수열이다. 또 은 인접한 수의 차이가 모두 5이므로 -계단 수열이다. 길이가 1인 수열은 모든 -계단 수열에 포함된다.
길이가 인 수열 이 주어질 때, 다음 쿼리를 처리하는 프로그램을 작성하시오.
1 i j x: 현재 수열의 번째 원소부터 번째 원소까지 각각 를 더한다.2 i j k: 이고 이 -계단 수열일 때, 의 최댓값을 출력한다.
입력
첫째 줄에 ()과 쿼리의 개수 ()가 공백으로 구분되어 주어진다.
둘째 줄에 정수 ()이 공백으로 구분되어 주어진다.
셋째 줄부터 개의 줄에 쿼리가 주어진다. 각 쿼리는 네 정수로 이루어져 있으며, 1 i j x (, ) 또는 2 i j k (, )이다.
2번 쿼리는 적어도 하나 주어진다.
출력
2번 쿼리가 주어질 때마다 그 결과를 한 줄에 하나씩 출력한다.