| 8 | map<pair<int, int>, T> value;//{r,l}=val |
| 9 | |
| 10 | void init(int n) { |
| 11 | value[ {n, 1}] = (T)0; //initial value |
| 12 | } |
| 13 | //assign a[i]=val for l<=i<=r |
| 14 | //returns affected ranges before performing this assign operation |
| 15 | vector<pair<pair<int, int>, T> > assign(int l, int r, T val) { |