21分求助!!错误点全是RE
查看原帖
21分求助!!错误点全是RE
186546
lwyznoip楼主2023/11/29 21:12
#include <bits/stdc++.h>
#define int long long

using namespace std;

int f[20005][100];
int n, m;

inline int read()
{
	int x=0,f=1;char ch=getchar();
	while (ch<'0'||ch>'9'){if (ch=='-') f=-1;ch=getchar();}
	while (ch>='0'&&ch<='9'){x=x*10+ch-48;ch=getchar();}
	return x*f;
}

signed main(){
    
    cin >> n >> m;
    
    for (int i = 1; i <= n; i ++) f[i][0] = read();
    
    for (int j = 1; j <= 20; j ++){
        
        for (int i = 1; i + (1 << j) - 1 <= n; i ++)
            
            f[i][j] = max(f[i][j - 1], f[i + (1 << (j - 1))][j - 1]);
    
    }


   int l, r;

    for (int i = 1; i <= m; i ++){
    
        cin >> l >> r;
    
        int k = log2(r - l + 1); 
        printf("%lld\n", max (f[l][k], f[r - (1 << k) + 1][k]));
    
    }
    
}
2023/11/29 21:12
加载中...