Data Structures - Segment Trees
Suppose you have created another array $S$ and stored sum from start to $i$ at $S[i]$. The sum of elements from index $l$ to $r$ inclusive is  $S[r]-S[l-1]$ for $l\ge1$, which takes two lookups and one subtraction, or $S[r]$ for $l=0$, which takes one lookup. So it takes $O(1)$ time.

Suppose you set $arr[k]$ to a new value, where $k=n/3$. Then you have to update $S[k], S[k+1], \cdots, S[n-1]$, which are roughly $n-n/3=2n/3$ numbers. That is, it takes $O(n)$ time. You can figure out all other cases of $k$.

"You can even explain the whole concept of segment trees here." That is exactly the purpose of that article and its follow-ups. Try reading them. Follow the recommendations thereof.