제출 #1256851

#제출 시각아이디문제언어결과실행 시간메모리
1256851blankcodes비밀 (JOI14_secret)C++20
0 / 100
331 ms4428 KiB
#include <bits/stdc++.h>
using namespace std;

int N, bsz, arr[1000000], blk[1001];

inline int op(int x,int y){return x+y;}

void Init(int n,int a[]){
    N=n;
    bsz=(int)sqrt(N)+1;
    memcpy(arr,a,sizeof(int)*N);
    fill(blk,blk+bsz,0);
    for(int i=0;i<N;i++) blk[i/bsz]=op(blk[i/bsz],arr[i]);
}

int Query(int L,int R){
    int res=0;
    while(L<=R && L%bsz){
        res=op(res,arr[L++]);
    }
    while(L+bsz-1<=R){
        res=op(res,blk[L/bsz]);
        L+=bsz;
    }
    while(L<=R) res=op(res,arr[L++]);
    return res;
}
#Verdict Execution timeMemoryGrader output
Fetching results...