RE了呜呜,根本找不到问题

P3372 【模板】线段树 1

__Princess__ @ 2024-11-04 22:50:05

#include<bits/stdc++.h>
using namespace std;
const int N=5010;
int lt=0,rt=5000;
int T[4*N],n,m;

void tree_insert(int pos,int l,int r,int data,int a)
{
//  T[pos]=max(T[pos],pos);
    if(a==1)T[pos]+=data;
//  T[pos]++;
    if(l==data && data==r)return;
    int mid=(l+r)/2;
    if(data<=mid)
    {
        tree_insert(2*pos,l,mid,data,a);
    }
    else
    {
        tree_insert(2*pos+1,mid+1,r,data,a);
    }
}

int main()
{
    cin>>n>>m;
    for(int i=1;i<=n;i++)
    {
        cin>>T[i];
    }
    for(int j=1;j<=m;j++)
    {
        int a;
        cin>>a>>lt>>rt;
        if(a==1)
        {
            int k;
            cin>>k;
            tree_insert(lt,lt,rt,k,a);
        }
        if(a==2)
        {
            int cnt=0;
            for(int i=lt;i<=rt;i++)
            {
                cnt+=T[i];
            }
            cout<<cnt;
        }
    }
}

|