시간 제한
메모리 제한
시간 제한
2초
메모리 제한
256 MB
커피숍에서 다음과 같은 게임을 한다.
처음에 N개의 정수가 일렬로 놓여 있다. 한 턴은 두 단계로 이루어진다.
각 턴마다 구해야 하는 구간 합을 모두 출력하는 프로그램을 작성하라.
첫째 줄에 수의 개수 N과 턴의 개수 Q가 주어진다. (1≤N,Q≤100,000)
둘째 줄에는 처음 배열에 들어 있는 정수 N개가 주어진다.
셋째 줄부터 Q개의 줄에는 한 턴을 나타내는 네 정수 x, y, a, b가 주어진다. 이는 현재 배열에서 x번째 수부터 y번째 수까지의 합을 구한 뒤, a번째 수를 b로 바꾸라는 뜻이다.
입력되는 모든 정수는 −231 이상 231−1 이하이다.
각 턴에서 구한 구간 합을 한 줄에 하나씩 출력한다.
보통 x∼y는 x번째 수부터 y번째 수까지를 뜻한다. 이 문제에서는 x>y인 경우에도 같은 규칙을 적용해, y번째 수부터 x번째 수까지의 합을 구한다.