2019.9.5 수열 구간 최대치

3699 단어
제목 전송문
ST 테이블 설명 없음
부호를 붙이다
#include
#include
#include
#include
#define int long long
using namespace std;
int n,m,dp[100050][55],a[100050];
void init()
{
    for(int i=1;i<=n;i++)dp[i][0]=a[i];
    for(int j=1;(1<)
        for(int i=1;i+(1<1<=n;i++)
            dp[i][j]=max(dp[i][j-1],dp[i+(1<1)][j-1]);
}
int maxnum(int l,int r)
{
    int k=log2(r-l+1);
    return max(dp[l][k],dp[r-(1<1][k]);
}
signed main()
{
    scanf("%lld%lld",&n,&m);
    for(int i=1;i<=n;i++)scanf("%lld",&a[i]);
    init();
    int x,y;
    for(int i=1;i<=m;i++)
    {
        scanf("%lld%lld",&x,&y);
        printf("%lld
",maxnum(x,y)); } return 0; }

좋은 웹페이지 즐겨찾기