Run ID 作者 问题 语言 测评结果 分数 时间 内存 代码长度 提交时间
44572 Ryan123 课堂检测 C++ 通过 100 204 MS 1840 KB 747 2022-02-09 10:31:31

Tests(23/23):


#include <bits/stdc++.h> using namespace std; typedef long long ll; ll a[500001],bl[500001],lazy[500001]; int n,m,block; void Add(ll l,ll r,ll val) { if(l>r) swap(l,r); for(int i=l; i<=min(r,bl[l]*block); i++) a[i]+=val; if(bl[l]!=bl[r]) for(int i=block*(bl[r]-1)+1; i<=r; i++) a[i]+=val; for(int i=bl[l]+1; i<=bl[r]-1; i++) lazy[i]+=val; } int main() { cin>>n; block=sqrt(n); for(int i=1; i<=n; i++) { cin>>a[i]; bl[i]=(i-1)/block+1; } cin>>m; for(int i=1,opt,l,r,k; i<=m; i++) { cin>>opt; if(opt==1) { cin>>l>>r>>k; Add(l,r,k); } if(opt==2) { cin>>k; cout<<a[k]+lazy[bl[k]]<<'\n'; } } return 0; }


测评信息: