만드는 중입니다

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

In Queries

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

요약
시드로 생성한 5열 표를 유지하면서 삽입, 삭제, 최댓값, 최솟값, 범위 개수 질의를 처리한다.
난이도

쉬움10점 중 3점

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

문제

한 학생 전산 동아리에서 표 형태의 데이터에 대한 질의를 처리하는 소프트웨어 모듈이 필요해 여러분에게 도움을 요청했습니다. 모든 값은 정수이며, 정확히 5개의 열을 가진 표에 저장됩니다.

개발용 초기 표는 다음 함수로 생성됩니다.

f(r, c) = (a · f(r-1, c) + b · f(r, c-1) + x) mod m
f(r, c) = 0   (r = 0 또는 c = 0 인 모든 경우)

여기서 f(r, c) 는 r 행 c 열의 값이며, r = 1 … n, c = 1 … 5 입니다. a, b, x, m, n 은 입력으로 주어지는 시드 값입니다.

모듈은 다음 질의들을 처리해야 합니다.

질의동작예시
insert a b c d e{a, b, c, d, e} 를 새로운 마지막 행으로 추가합니다 (a 는 1열, b 는 2열, …, e 는 5열의 값).insert 2 10 3 4 7
remove rr 행을 삭제합니다.remove 3
max cc 열에서 가장 큰 값을 출력합니다.max 3
min cc 열에서 가장 작은 값을 출력합니다.min 1
range c a bc 열의 값이 a 이상 b 이하인 행의 개수를 출력합니다.range 2 1 10

remove 는 해당 행을 삭제하지만 아래의 행들을 위로 당기지 않습니다. 행은 그 자리에 그대로 남고 데이터만 비워집니다. 삭제할 행이 이미 비어 있거나 범위를 벗어나면 아무 일도 하지 않습니다. insert 는 앞쪽에 비어 있는(이전에 삭제된) 행이 있더라도 항상 새로운 마지막 행으로 추가됩니다.

출력 질의(max, min, range)는 표가 비어 있는 상태에서는 주어지지 않는다고 가정해도 됩니다.

입력

첫 줄에 테스트 케이스의 개수 T 가 주어집니다.

각 테스트 케이스는 초기 표 생성을 위한 시드인 다섯 개의 음이 아닌 정수 a, b, x, m (1≤m≤100001 \le m \le 10000), n (0≤n≤1000000 \le n \le 100000) 으로 시작합니다. 다음 줄에는 질의의 개수 q (0≤q≤1000 \le q \le 100) 가 하나의 정수로 주어집니다. 이어지는 q 개의 줄에는 위에서 설명한 형식 중 하나의 질의가 한 줄에 하나씩 주어집니다.

출력

각 테스트 케이스마다 먼저 Case #X: 를 한 줄에 출력합니다 (X 는 1부터 시작하는 테스트 케이스 번호). 그다음 각 출력 질의(max, min, range)의 결과를 질의가 등장한 순서대로 한 줄에 하나씩 출력합니다.

예제1

  1. 예제 1

    입력
    3
    1 1 1 5 6
    9
    max 5
    remove 2
    remove 4
    min 2
    insert 2 4 6 3 10
    range 4 1 5
    insert 0 0 0 0 0
    remove 7
    max 3
    3 3 3 3 3
    2
    remove 1
    insert 1 1 1 1 1
    2 4 3 10 2
    6
    remove 1
    remove 2
    insert 2 2 2 2 2
    remove 1
    remove 10
    max 3
    
    예상 출력
    Case #1:
    1
    0
    4
    4
    Case #2:
    Case #3:
    2