记录编号 | 557019 | 评测结果 | AAAAAAAAAAAAAAA | ||
---|---|---|---|---|---|
题目名称 | 数列操作B | 最终得分 | 100 | ||
用户昵称 | 是否通过 | 通过 | |||
代码语言 | C++ | 运行时间 | 2.687 s | ||
提交时间 | 2020-11-02 11:11:47 | 内存使用 | 19.87 MiB | ||
- #include<bits/stdc++.h>
- #define int long long
- #define re register
- #define il inline
- #define inf 2e10
- #define eps 1e-15
- #define ll long long
- #define mod 1000000007
- #define lowbit(p) p&(-p)
- #define bianli for(int i=head[x];i;i=a[i].next)
- #define QWQ cout<<"qwq"
- #define me(qw) memset(qw,0,sizeof(qw));
- #define meinf(qw) memset(qw,-0x3f,sizeof(qw));
- using namespace std;
- const int maxn=1e6+5;
- int n,m,a[maxn];
- void insert(int k,int x){
- while(k<=n){
- a[k]+=x;
- k+=lowbit(k);}}
- int ask(int x){
- int ans=0;
- while(x){
- ans+=a[x];
- x-=lowbit(x);}
- return ans;
- }
- signed main(){
- freopen("shulieb.in","r",stdin);
- freopen("shulieb.out","w",stdout);
- int w,e,r,last=0;
- char q[10];
- cin>>n;
- for(int i=1;i<=n;i++)
- cin>>w,insert(i,w-last),last=w;
- cin>>m;
- while(m--){
- cin>>q;
- if(q[0]=='A')cin>>w>>e>>r,insert(w,r),insert(e+1,-r);
- else cin>>w,cout<<ask(w)<<endl;
- }
- return 0;
- }