刚来洛谷,为什么这份代码最后两个测试run time error
查看原帖
刚来洛谷,为什么这份代码最后两个测试run time error
984446
QAQ9ming楼主2023/6/12 16:09
#include<cmath>
#include<iostream>
#include<math.h>
#include<vector>
#include<string.h>
using namespace std;

int main(){
    cin.tie(0);
    cout.tie(0);
    ios::sync_with_stdio(0);
    int n,m;
    cin>>n>>m;
    vector<int>a(n);
    for(int i = 0;i<n;i++)
        cin>>a[i];
    int l = ceil(log2(n))+1;
    int st[n][l];
    memset(st,0,sizeof(st));
    for(int i = 0;i<n;i++)
        st[i][0] = a[i];
    for(int j = 1;j<l;j++){
        int d = (1<<j-1);
        for(int i = 0;i+d<n;i++){
            st[i][j] = max(st[i][j-1],st[i+d][j-1]);
        }
    } 
    for(int i = 0;i<m;i++){
        int l, r;
        cin>>l>>r;
        l--,r--;
        int q = ceil(log2(r-l+1))-1;
        cout<<max(st[l][q],st[r-(1<<q)+1][q])<<endl;
    }
    return 0;
}
2023/6/12 16:09
加载中...