Run ID 作者 问题 语言 测评结果 分数 时间 内存 代码长度 提交时间
44527 112 课堂检测 C++ 解答错误 95 75 MS 1432 KB 776 2022-02-09 09:49:55

Tests(22/23):


//test #include<bits/stdc++.h> using namespace std; int n,m,bl[100005],block; long long a[100005],tag[100005]; void add(int l,int r,int x) { for (int i=l; i<=min(bl[l]*block,r); i++) a[i]+=x; if (bl[l]!=bl[r]) for(int i=block*(bl[r]-1)+1; i<=r; i++) a[i]+=x; for(int i=bl[l]+1; i<=bl[r]-1; i++) tag[i]+=x; } int main() { scanf("%d",&n); block=sqrt(n); for (int i=1; i<=n; i++) scanf("%d",&a[i]),bl[i]=(i-1)/block+1; scanf("%d",&m); while (m--) { int choice; scanf("%d",&choice); if (choice==1) { int l,r,x; scanf("%d%d%d",&l,&r,&x); add(l,r,x); } else { int x; scanf("%d",&x); printf("%d\n",a[x]+tag[bl[x]]); } } return 0; }


测评信息: