Submission

Status:
PPPPPPPPPPPPPPPPPPPP

Score: 100

User: a0ms1n

Problemset: ผลบวก (ง่าย)

Language: cpp

Time: 0.064 second

Submitted On: 2024-12-04 12:44:22

#include <bits/stdc++.h>
using namespace std;
typedef long long ii;

ii darr[(int)1e4+1]={0};
ii arr[(int)1e6+1]={0};

int main(){
    cin.tie(0)->sync_with_stdio(0);
    int n;cin>>n;
    int dsiz = sqrt(n+.0)+1;  

    for(int i=0;i<n;i++){
        cin>>arr[i];
        darr[i/dsiz]+=arr[i];
    }
    int q=1;
    while(q--){
        
        int a,b;cin>>a>>b;
        int ca = a/dsiz + (a%dsiz != 0),cb=b/dsiz;
        ii sum = 0;
        if(ca>=cb)for(int i=a;i<=b;i++)sum+=arr[i];
        else{
            for(int i=a,end=ca*dsiz;i<end;i++)sum+=arr[i];
            for(int i=ca;i<cb;i++)sum+=darr[i];
            for(int i=cb*dsiz;i<=b;i++)sum+=arr[i];
        }
        cout<<sum<<'\n';
    }

    return 0;
}