样例过了 加强的样例也过了 然后及没有然后了 全wa
#include<bits/stdc++.h>
using namespace std;
const int N=1e5+10;
long long m,n,money[N];
struct SegmentTree{
long long l,r,dat;
}t[N*4];
void build(int p,int l,int r){
t[p].l=l;t[p].r=r;
if(l==r){
t[p].dat=money[l];
return;
}
int mid=(l+r)/2;
build(p*2,l,mid);
build(p*2+1,mid+1,r);
t[p].dat=min(t[p*2].dat,t[p*2+1].dat);
}
int ask(int p,int l,int r){
if(l<=t[p].l && r>=t[p].r) return t[p].dat;
int mid=(t[p].l+t[p].r)/2;
int val=1<<30;
if(l<=mid) val=min(val,ask(p*2,l,r));
if(l>mid) val=min(val,ask(p*2+1,l,r));
return val;
}
int main(){
ios::sync_with_stdio(false),cin.tie(0);
cin>>m>>n;
for(long long i=1;i<=m;i++){
long long x;
cin>>x;
money[i]=x;
}
build(1,1,m);
for(long long i=1;i<=n;i++){
long long a,b;
cin>>a>>b;
cout<<ask(1,a,b)<<' ';
}
return 0;
}