์ด๋ค N๊ฐ์ ์๊ฐ ์ฃผ์ด์ ธ ์๋ค. ๊ทธ๋ฐ๋ฐ ์ค๊ฐ์ ์์ ๋ณ๊ฒฝ์ด ๋น๋ฒํ ์ผ์ด๋๊ณ ๊ทธ ์ค๊ฐ์ ์ด๋ค ๋ถ๋ถ์ ํฉ์ ๊ตฌํ๋ ค ํ๋ค. ๋ง์ฝ์ 1,2,3,4,5 ๋ผ๋ ์๊ฐ ์๊ณ , 3๋ฒ์งธ ์๋ฅผ 6์ผ๋ก ๋ฐ๊พธ๊ณ 2๋ฒ์งธ๋ถํฐ 5๋ฒ์งธ๊น์ง ํฉ์ ๊ตฌํ๋ผ๊ณ ํ๋ค๋ฉด 17์ ์ถ๋ ฅํ๋ฉด ๋๋ ๊ฒ์ด๋ค. ๊ทธ๋ฆฌ๊ณ ๊ทธ ์ํ์์ ๋ค์ฏ ๋ฒ์งธ ์๋ฅผ 2๋ก ๋ฐ๊พธ๊ณ 3๋ฒ์งธ๋ถํฐ 5๋ฒ์งธ๊น์ง ํฉ์ ๊ตฌํ๋ผ๊ณ ํ๋ค๋ฉด 12๊ฐ ๋ ๊ฒ์ด๋ค.
๋ฌธ์ ๋ณด๊ธฐ
์ฒซ์งธ ์ค์ ์์ ๊ฐ์ N(1 โค N โค 1,000,000)๊ณผ M(1 โค M โค 10,000), K(1 โค K โค 10,000) ๊ฐ ์ฃผ์ด์ง๋ค. M์ ์์ ๋ณ๊ฒฝ์ด ์ผ์ด๋๋ ํ์์ด๊ณ , K๋ ๊ตฌ๊ฐ์ ํฉ์ ๊ตฌํ๋ ํ์์ด๋ค. ๊ทธ๋ฆฌ๊ณ ๋์งธ ์ค๋ถํฐ N+1๋ฒ์งธ ์ค๊น์ง N๊ฐ์ ์๊ฐ ์ฃผ์ด์ง๋ค. ๊ทธ๋ฆฌ๊ณ N+2๋ฒ์งธ ์ค๋ถํฐ N+M+K+1๋ฒ์งธ ์ค๊น์ง ์ธ ๊ฐ์ ์ ์ a, b, c๊ฐ ์ฃผ์ด์ง๋๋ฐ, a๊ฐ 1์ธ ๊ฒฝ์ฐ b(1 โค b โค N)๋ฒ์งธ ์๋ฅผ c๋ก ๋ฐ๊พธ๊ณ a๊ฐ 2์ธ ๊ฒฝ์ฐ์๋ b(1 โค b โค N)๋ฒ์งธ ์๋ถํฐ c(b โค c โค N)๋ฒ์งธ ์๊น์ง์ ํฉ์ ๊ตฌํ์ฌ ์ถ๋ ฅํ๋ฉด ๋๋ค.
์ ๋ ฅ์ผ๋ก ์ฃผ์ด์ง๋ ๋ชจ๋ ์๋ -263๋ณด๋ค ํฌ๊ฑฐ๋ ๊ฐ๊ณ , 263-1๋ณด๋ค ์๊ฑฐ๋ ๊ฐ์ ์ ์์ด๋ค.
์ฒซ์งธ ์ค๋ถํฐ K์ค์ ๊ฑธ์ณ ๊ตฌํ ๊ตฌ๊ฐ์ ํฉ์ ์ถ๋ ฅํ๋ค. ๋จ, ์ ๋ต์ -263๋ณด๋ค ํฌ๊ฑฐ๋ ๊ฐ๊ณ , 263-1๋ณด๋ค ์๊ฑฐ๋ ๊ฐ์ ์ ์์ด๋ค.
๋ฐฐ์ด์ ๋์ ํ ๋นํ์ฌ ๊ฐ์ ์ ๋ ฅ๋ฐ๋๋ค. a, b, c๊ฐ ์ ๋ ฅ๋ ๋ a์ ๊ฐ์ด 1์ธ ๊ฒฝ์ฐ์ 2์ธ ๊ฒฝ์ฐ๋ฅผ ๋๋์ด ๊ตฌํํ๋ค.
/* ์๊ฐ ์ด๊ณผ */
#include <iostream>
using namespace std;
int main() {
int N, M, K;
int num;
cin >> N >> M >> K;
int* arr = new int[N];
for(int i = 0; i < N; i++) {
cin >> num;
arr[i] = num;
}
int a, b, c;
for (int i = 0; i < M + K; i++) {
cin >> a >> b >> c;
int sum = 0;
if (a == 1) {
arr[b - 1] = c;
}
else if (a == 2) {
for (int i = b; i <= c; i++) {
sum += arr[i -1];
}
cout << sum << "\n";
}
}
return 0;
}
์๊ฐ์ด๊ณผ๋ฅผ ํด๊ฒฐํ์ง ๋ชปํ๋ค.