From 893d0132f56c5dec7048d93f342c8b39740f1278 Mon Sep 17 00:00:00 2001 From: hanyixuanten <105723997+hanyixuanten@users.noreply.github.com> Date: Tue, 22 Sep 2026 19:38:23 +0800 Subject: [PATCH] new file: P3368.cpp --- P3368.cpp | 43 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 43 insertions(+) create mode 100644 P3368.cpp diff --git a/P3368.cpp b/P3368.cpp new file mode 100644 index 0000000..6f6b498 --- /dev/null +++ b/P3368.cpp @@ -0,0 +1,43 @@ +#include +#define int long long +using namespace std; +int n,m; +long long tree[500005]; +long long a[500005]; +int lowbit(int n){ + return n&(-n); +} +void modify(int x,long long k) +{ + for(;x<=n;x+=lowbit(x)) + tree[x]+=k; +} +long long query(int x){ + int ans=0; + for(;x;x-=lowbit(x)) + ans=ans+tree[x]; + return ans; +} +signed main(){ + scanf("%lld%lld",&n,&m); + for(int i=1;i<=n;++i){ + scanf("%lld",&a[i]); + modify(i,a[i]-a[i-1]); + } + while(m--){ + int op; + scanf("%lld",&op); + if(op==1){ + int x,y; + long long k; + scanf("%lld%lld%lld",&x,&y,&k); + modify(x,k); + modify(y+1,-k); + }else{ + int x; + scanf("%lld",&x); + printf("%lld\n",query(x)); + } + } + return 0; +} \ No newline at end of file