输出错了,求改
查看原帖
输出错了,求改
551088
FincheuwYggdrasil楼主2022/5/16 17:49

原题在这里

#include<bits/stdc++.h>
using namespace std;
const int maxn = 50005;
long long n,a[maxn],c[maxn];//长度,原数组,前缀和 
void add(int i,int z)
{
    for(;i <= n;i += ((-i)&i))
        c[i] += z;
}
long long sum(int i)
{
    long long s = 0;
    for(;i > 0;i -= ((-i)&i))
        s += c[i];
    return s;
}
long long sum(int i,int j)
{
    return sum(j) - sum(i - 1);
}
int main()
{
    long long T;
    cin >> T;
    for(long long y = 1;y <= T;y++)
    {
        cout << "Case " << y << ":" << endl;
        string cz;
        memset(a,0,sizeof(a));
        memset(c,0,sizeof(c));
        int q,z;
        cin >> n;
        for(int k = 1;k <= n;k++)
        {
            cin >> a[k];
            add(k,a[k]);
        }
        while(cin >> cz >> q >> z)
        {
            if(cz == "End")
                break;
            if(cz == "Add")
                add(q,z);
            if(cz == "Sub")
                add(q,0 - z);
            if(cz == "Query")
                cout << sum(q,z) << endl;
        }
    } 
     return 0;
}
2022/5/16 17:49
加载中...