수열 관리
시간 제한2초메모리 제한256 MB
수열을 유지하며 구간 삽입, 삭제, 구간 대입, 구간 뒤집기, 구간 합, 전체 최대 연속 부분합을 처리한다.
문제
다음 6가지 연산을 지원하면서 수열을 관리하는 프로그램을 작성하시오.
입력
첫째 줄에 두 정수 N과 M이 주어진다. N은 수열의 처음 길이이고, M은 연산의 개수이다.
둘째 줄에 처음 수열을 이루는 N개의 정수가 주어진다.
그다음 M개의 줄에 위에서 설명한 형식 중 하나로 명령이 주어진다.
출력
입력에 나오는 각 GET-SUM 또는 MAX-SUM 연산마다 그 결과를 한 줄에 하나씩 출력한다.
제한
- 어느 시점에서든 수열에는 적어도 1개의 수가 들어 있다.
- 입력 데이터는 올바르며, 항상 수열에 실제로 존재하는 위치를 가리킨다.
- 어느 순간에든 수열에 들어 있을 수 있는 수의 개수는 최대 500 000개이다.
- 수열에 들어 있는 각 수의 값은 [-1000, 1000] 범위에 있다.
M≤ 20 000- 삽입되는 모든 값의 합은 4 000 000을 넘지 않는다.
- 입력은 20MB를 넘지 않는다.