线段树 A题

来源:互联网 发布:网王之知世年华 编辑:程序博客网 时间:2024/06/05 22:46
#include <iostream>
#include <cstring>
#include <algorithm>
using namespace std;
const int N= 50000;
long a[N];
int n, q;
int b1,b2,b3;
int flag;
int main()
{
    cin>>n>>q;
    for(int i=1; i<=n; i++)
        cin>>a[i];
    for(int i=1; i<=q; i++)
    {
        long sum=0;
        char temp;
        cin>>temp;
        if(temp=='Q')
        {
            cin>>b1>>b2;
            for(int j=b1; j<=b2; j++)
                sum+=a[j];
            flag=1;
        }
        else if(temp=='C')
        {
            cin>>b1>>b2>>b3;
            for(int j=b1; j<=b2; j++)
                a[j]+=b3;
        }
        if(flag==1)
        {
            flag=0;
            cout<<sum<<endl;
        }
    }
    return 0;
}
原创粉丝点击