记录编号 422734 评测结果 AAAAAAAAAA
题目名称 忠诚 最终得分 100
用户昵称 Gravatarguss 是否通过 通过
代码语言 C++ 运行时间 0.210 s
提交时间 2017-07-10 11:26:15 内存使用 4.89 MiB
显示代码纯文本
#include<iostream>
#include<cstdio>
using namespace std;
struct UMR
{
	int l,r,w;
}tree[400001];
int x,y,T=9999999;
void build(int l,int r,int k)
{
	tree[k].l=l;
	tree[k].r=r;
	if(l==r)
	{
		scanf("%d",&tree[k].w);
		return ;
	}
	int m=(l+r)/2;
	build(l,m,k*2);
	build(m+1,r,k*2+1);
	tree[k].w=min(tree[k*2].w,tree[k*2+1].w);
}
void cha(int k)
{
	if(tree[k].l>=x&&tree[k].r<=y)
	{
		if(tree[k].w<T)
			T=tree[k].w;
		return ;
	}
	int m=(tree[k].l+tree[k].r)/2;
	if(x<=m)
		cha(k*2);
	if(y>m)
		cha(k*2+1);
}
int main()
{
	freopen("faithful.in","r",stdin);
	freopen("faithful.out","w",stdout);
	int N,Q;
	scanf("%d %d",&N,&Q);
	build(1,N,1);
	for(int i=1;i<=Q;i++)
	{
		T=999999;
		scanf("%d %d",&x,&y);
		cha(1);
		printf("%d ",T);
	}
}