結果
| 問題 |
No.1099 Range Square Sum
|
| コンテスト | |
| ユーザー |
tails
|
| 提出日時 | 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);
}
}
}
tails