Run ID 作者 问题 语言 测评结果 分数 时间 内存 代码长度 提交时间
44557 seanlsy 课堂检测 C++ 通过 100 67 MS 1836 KB 681 2022-02-09 10:14:45

Tests(23/23):


#include <bits/stdc++.h> using namespace std; #define int long long int n,m,opt,l,r,x,block,bl[500005],a[500005],sum[500005]; void Add(int l,int r,int x){ for(int i=l;i<=min(r,block*bl[l]);i++) a[i]+=x; if(bl[l]<bl[r]) for(int i=block*bl[r]-block+1;i<=r;i++) a[i]+=x; for(int i=bl[l]+1;i<bl[r];i++) sum[i]+=x; } signed main(){ scanf("%lld",&n); block=sqrt(n); for(int i=1;i<=n;i++) scanf("%lld",&a[i]),bl[i]=(i-1)/block+1; scanf("%lld",&m); while(m--){ scanf("%lld",&opt); if(opt==1){ scanf("%lld%lld%lld",&l,&r,&x); Add(l,r,x); } else{ scanf("%lld",&x); printf("%lld\n",a[x]+sum[bl[x]]); } } return 0; }


测评信息: