#include #define ll long long using namespace std; #define fi first #define sc second #define pii pair #define pdd pair #define pb push_back #define umap unordered_map #define mset multiset #define pq priority_queue #define ull unsigned long long #define i128 __int128 #define ld long double #define fixs fixed<>=1){ if(i&1) res=(res*x); x=(x*x); } return res; } void output(){ cout<<"----MATRIX----"<>1; build(ls(u),l,mid),build(rs(u),mid+1,r),pushup(u); } void upd(int u,int x){ if(tr[u].l==tr[u].r) return tr[u].cov(x),void(); int mid=(tr[u].l+tr[u].r)>>1; if(x<=mid) upd(ls(u),x); else upd(rs(u),x); pushup(u); } Mat query(int u,int l,int r){ if(ir(l,r,tr[u].l,tr[u].r)) return tr[u].mat; else if(!ofr(l,r,tr[u].l,tr[u].r)) return query(ls(u),l,r)*query(rs(u),l,r); else return I; } void solve(){ cin>>n>>q,n++,I.n=4,I.getI(); build(1,1,n); while(q--){ char op; int i,v; cin>>op>>i,i++; if(op=='x') cin>>v,x[i]=v,upd(1,i); if(op=='y') cin>>v,y[i]=v,upd(1,i); if(op=='a'){ Mat res=query(1,1,i-1); // res.output(); ll s=0; for(int i=1;i<=4;i++) s+=res.a[i][1]; cout<>t; while(t--) solve(); return 0; } /* Samples input: output: THINGS TODO: ??freopen??????? ???? ???????????? */