Run ID 作者 问题 语言 测评结果 分数 时间 内存 代码长度 提交时间
44530 xit. 课堂检测 C++ 通过 100 65 MS 1836 KB 804 2022-02-09 09:55:19

Tests(23/23):


#include <bits/stdc++.h> using namespace std; long long lazy[500005],bl[500005],a[500005]; long long n,m,block; void Add(long long l, long long r, long long k){ for (long long i=l; i<=min(r,block*bl[l]); i++) a[i]+=k; if (bl[l]!=bl[r]) for (long long i=(bl[r]-1)*block+1; i<=r; i++) a[i]+=k; for (long long i=bl[l]+1; i<=bl[r]-1; i++) lazy[i]+=k; } int 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); for (long long choice,l,r,k; m; m--){ scanf("%lld",&choice); if (choice==1){ scanf("%lld%lld%lld",&l,&r,&k); Add(l,r,k); } else{ scanf("%lld",&k); printf("%lld\n",a[k]+lazy[bl[k]]); } } return 0; }


测评信息: