#include<bits/stdc++.h>
using namespace std;
#define int long long
#define inf 0x3f
#define INF 0x3f3f3f3f
#define mst(a,b) memset(a,b,sizeof(a))
#define Elaina 0
#define lid (id<<1)
#define rid (id<<1|1) //即rid
const int N=1e5+100;
int a[N],n,m;
char s[10];
struct seg_tree{
int l,r,maxx,minn,sum;
int lazy;
}tr[N<<2];
void pushup(int id){
tr[id].sum=tr[lid].sum+tr[rid].sum;
tr[id].maxx=max(tr[lid].maxx,tr[rid].maxx);
tr[id].minn=min(tr[lid].minn,tr[rid].minn);
}
//建树
void build(int id,int l,int r){
tr[id].l=l;
tr[id].r=r;
if(l==r){
tr[id].sum=a[l];
return ;
}
int mid=(l+r)>>1;
build(lid,l,mid);
build(rid,mid+1,r);
pushup(id);
}
//求总和更新值
void changesum(int id,int x,int k)
{
if(tr[id].l==tr[id].r)
{
tr[id].sum+=k;
return;
}
if(x<=tr[lid].r)
changesum(lid,x,k);
else
changesum(rid,x,k);
tr[id].sum=tr[lid].sum+tr[rid].sum;
return;
}
//求最大更新值
void changemax(int id,int x,int k)
{
if(tr[id].l==tr[id].r)
{
tr[id].maxx=k;
return;
}
int m=(tr[id].l+tr[id].r)>>1;
if(x<=m)
changemax(lid,x,k);
else
changemax(rid,x,k);
tr[id].maxx=max(tr[lid].maxx,tr[rid].maxx);
return;
}
//求最小更新值
void changemin(int id,int x,int k)
{
if(tr[id].l==tr[id].r)
{
tr[id].minn=k;
return;
}
int m=(tr[id].l+tr[id].r)>>1;
if(x<=m)
changemin(lid,x,k);
else
changemin(rid,x,k);
tr[id].minn=min(tr[lid].minn,tr[rid].minn);
return;
}
//查询区间和
int asksum(int id,int l,int r){
if(l<=tr[id].l&&tr[id].r<=r){
return tr[id].sum;
}
if(tr[id].r<l||tr[id].l>r){
return 0;
}
int sum=0;
if(tr[lid].r>=l) sum+=asksum(lid,l,r);
if(tr[rid].l<=r) sum+=asksum(rid,l,r);
return sum;
}
//查询区间最大值
int askmax(int id,int l,int r){
if(tr[id].l>=l&&tr[id].r<=r){
return tr[id].maxx;
}
int mid=(tr[id].l+tr[id].r)>>1;
int res=-INF;
if(l<=mid){
res=max(res,askmax(lid,l,r));
}
if(r>mid){
res=max(res,askmax(rid,l,r));
}
return res;
}
//查询区间最小值
int askmin(int id,int l,int r){
if(tr[id].l>=l&&tr[id].r<=r){
return tr[id].minn;
}
int mid=(tr[id].l+tr[id].r)>>1;
int res=INF;
if(l<=mid){
res=min(res,askmin(lid,l,r));
}
if(r>mid){
res=min(res,askmin(rid,l,r));
}
return res;
}
//延迟标记(懒标记) 区间修改 区间(也可以单点)查询
//void pushdown(int id){
// if(tr[id].lazy){
// int lz=tr[id].lazy;
// tr[id].lazy=0;
// tr[lid].lazy+=lz;
// tr[rid].lazy+=lz;
// tr[lid].sum+=lz*(tr[lid].r-tr[lid].l+1);
// tr[rid].sum+=lz*(tr[rid].r-tr[rid].l+1);
// }
//}
//void update(int id,int l,int r,int k){
// if(tr[id].l>=l&&tr[id].r<=r){
// tr[id].lazy+=k;
// tr[id].sum+=k*(tr[id].r-tr[id].l+1);
// return;
// }
// pushdown(id);
// int mid=(tr[id].l+tr[id].r)>>1;
// if(l<=mid) update(lid,l,r,k);
// if(r>mid) update(rid,l,r,k);
// pushup(id);
//}
//int query(int id,int l,int r){
// if(tr[id].l>=l&&tr[id].r<=r){
// return tr[id].sum;
// }
// pushdown(id);
// int mid=(tr[id].l+tr[id].r)>>1;
// int res=0;
// if(l<=mid) res+=query(lid,l,r);
// if(r>mid) res+=query(rid,l,r);
// return res;
//}
signed main(){
cin>>n;
for(int i=1;i<=n;i++){
cin>>a[i];
}
if(n==0)return Elaina;
build(1,1,n);
cin>>m;
//输入应该不用我教给你叭(^_^)
for(int i=1;i<=m;i++){
}
return Elaina;
}
都看到这了,真的不点个赞吗(>ω<*)