记录编号 |
433415 |
评测结果 |
AAAAAAAAAA |
题目名称 |
忠诚 |
最终得分 |
100 |
用户昵称 |
Hzoi_Mafia |
是否通过 |
通过 |
代码语言 |
C++ |
运行时间 |
0.067 s |
提交时间 |
2017-08-05 11:56:01 |
内存使用 |
0.53 MiB |
显示代码纯文本
#include<iostream>
#include<cstring>
#include<cstdio>
using namespace std;
# define N ((131072<<1)+10)
inline int read(){
int sum(0);
char ch(getchar());
for(;ch<'0'||ch>'9';ch=getchar());
for(;ch>='0'&&ch<='9';sum=sum*10+(ch^48),ch=getchar());
return sum;
}
int n,m,q;
int minn[N];
inline int my_min(int a,int b){
return a<b?a:b;
}
inline int gg(){
freopen("faithful.in","r",stdin);
freopen("faithful.out","w",stdout);
n=read(),q=read();
for(m=1;m<n+2;m<<=1);
for(int i=1;i<=n;i++)
minn[i+m]=read();
for(int i=m-1;i>0;i--)
minn[i]=my_min(minn[i<<1],minn[i<<1|1]);
while(q--){
int x(read()),y(read());
int ans(0x7fffffff);
x=x+m-1,y=y+m+1;
for(;x^y^1;x>>=1,y>>=1){
if(!(x&1))
ans=my_min(ans,minn[x^1]);
if(y&1)
ans=my_min(ans,minn[y^1]);
}
printf("%d\n",ans);
}
}
int K(gg());
int main(){;}