#include #define rep(a,n) for (int a = 0; a < (n); ++a) using namespace std; using ll = long long; typedef pair P; typedef pair PP; typedef vector > Graph; template inline bool chmax(T& a, T b) { if (a < b) { a = b; return 1; } return 0; } template inline bool chmin(T& a, T b) { if (a > b) { a = b; return 1; } return 0; } const ll INF = 1e18; /*累積和 query(l,r)=引数に渡したvectorにおける[l,r)の和(0-indexed) verified : https://judge.yosupo.jp/problem/static_range_sum */ template struct CumulativeSum{ vector res; CumulativeSum(const vector vec){//初期化 int sz = vec.size(); res.resize(sz+1,0); for(int i=0;i<=sz;i++){ res[i+1] = res[i]+vec[i]; } } T query(int l, int r){ return res[r]-res[l]; } }; int main(){ ll n; cin >> n; vectora(n); rep(i,n)cin>>a[i]; CumulativeSumcum(a); for(int i=0;i