직사각형 세기
시간 제한5초메모리 제한1024 MB
배열 A와 B에 원소가 추가될 때마다 A_i + B_j가 0 이상인 칸으로만 이루어진 직사각형의 개수를 998244353으로 나눈 나머지로 구합니다.
문제
정수 배열 (길이 )와 (길이 )에 대해 크기가 인 격자 를 정의한다. 칸 는 이면 검은색, 아니면 흰색이다.
는 안에 있는 검은색 직사각형의 개수이다. 직사각형에 포함된 각 칸은 직사각형에 완전히 포함되거나, 직사각형과 전혀 겹치지 않는다.
즉, 는 , 을 만족하고, , 인 모든 칸 가 검은색인 튜플 의 개수이다.
처음에는 과 만 주어진다. 이후 다음 개의 질의를 처리한다.
- 0 : 현재 배열 의 끝에 를 추가한다.
- 1 : 배열 의 끝에 를 추가한 뒤, 을 출력한다.
- 2 : 현재 배열 의 끝에 를 추가한다.
- 3 : 배열 의 끝에 를 추가한 뒤, 을 출력한다.
입력
첫 줄에 정수 가 주어진다.
둘째 줄에 공백으로 구분된 정수 과 이 주어진다.
이어지는 개의 줄에는 각각 위 형식의 질의를 나타내는 공백으로 구분된 정수 두 개가 주어진다.
출력
타입 1 또는 3인 질의마다 그 답을 한 줄에 정수 하나로 출력한다.
제한
- ()
- ()
여기서 은 모든 질의를 처리한 뒤의 배열 의 크기이고, 은 모든 질의를 처리한 뒤의 배열 의 크기이다. 마지막 질의의 타입은 1 또는 3이다.