记录编号 |
452790 |
评测结果 |
AAAAAAAAAA |
题目名称 |
忠诚 |
最终得分 |
100 |
用户昵称 |
Emine |
是否通过 |
通过 |
代码语言 |
C++ |
运行时间 |
0.200 s |
提交时间 |
2017-09-20 11:54:29 |
内存使用 |
10.23 MiB |
显示代码纯文本
#include<bits/stdc++.h>
#define maxn 100005
using namespace std;
int n,m,a[maxn],f[maxn][25],x,y,ans;
int rmq(int i,int j){int k=log(j-i+1)/log(2);return min(f[i][k],f[j-(1<<k)+1][k]);}
int main(){
freopen("faithful.in","r",stdin);freopen("faithful.out","w",stdout);
scanf("%d%d",&m,&n); for(int i=1;i<=m;i++) scanf("%d",&a[i]),f[i][0]=a[i];
for(int j=1;j<=23;j++) for(int i=1;i+(1<<j)-1<=m;i++)
f[i][j]=min(f[i][j-1],f[i+(1<<(j-1))][j-1]);
for(int i=1;i<=n;i++){
scanf("%d%d",&x,&y); ans=rmq(x,y); printf("%d ",ans);
}
return 0;
}