結果
問題 | No.1099 Range Square Sum |
ユーザー |
![]() |
提出日時 | 2020-09-25 17:44:27 |
言語 | cLay (20241019-1) |
結果 |
AC
|
実行時間 | 59 ms / 2,000 ms |
コード長 | 479 bytes |
コンパイル時間 | 2,456 ms |
コンパイル使用メモリ | 176,856 KB |
実行使用メモリ | 19,840 KB |
最終ジャッジ日時 | 2024-07-05 14:16:22 |
合計ジャッジ時間 | 5,587 ms |
ジャッジサーバーID (参考情報) |
judge5 / judge2 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 1 |
other | AC * 30 |
ソースコード
struct V{ ll n,s,t,a; }; inline void segtree_pg_func(V&r,V a,V b){ r={ a.n+b.n, a.s+a.a*b.n+b.s, a.t+b.t+a.a*(2b.s+a.a*b.n), a.a+b.a, }; } segtree_pg<V>t; inline void add(int i,ll a){ t[i].a+=a; t.build(i+t.N); } { ll n,a; rd(n); t.walloc(n+1); t.setN(n+1,0,0); rep(i,n)rd(a),t[i+1]={1,a,a*a,0}; t.build(); rd(n); rep(n){ ll x,l,r; rd(x,l,r++); if(x==1){ rd(x); add(l-1,x); add(r-1,-x); }else{ wt(t.get(0,r).t-t.get(0,l).t); } } }