记录编号 443519 评测结果 AAAAAAAAAA
题目名称 忠诚 最终得分 100
用户昵称 GravatarREALIZE_BEYOND 是否通过 通过
代码语言 C++ 运行时间 1.065 s
提交时间 2017-08-31 09:51:19 内存使用 8.71 MiB
显示代码纯文本
#include<bits/stdc++.h>

using namespace std;
int m,n;
int a[100005];
int f[100005][21];
int main(){
	freopen("faithful.in","r",stdin);
	freopen("faithful.out","w",stdout);
	cin>>m>>n;//m笔账,n次查询 
	for(int i=1;i<=m;i++){
		cin>>a[i];
		f[i][0]=a[i];	 
	}
	for(int j=1;j<=20;j++)
	  for(int i=1;i<=m;i++)
	    if(i+(1<<j)-1<=m)
	    	f[i][j]=min(f[i][j-1],f[i+(1<<(j-1))][j-1]);	
	int l,r,temp;
	for(int i=1;i<=n;i++){
		cin>>l>>r;
		temp=log(r-l+1)/log(2);
		cout<<min(f[l][temp],f[r-(1<<temp)+1][temp])<<" ";
	}
	return 0;  
}