记录编号 443687 评测结果 AAAAAAAAAA
题目名称 忠诚 最终得分 100
用户昵称 Gravatarswttc 是否通过 通过
代码语言 C++ 运行时间 0.209 s
提交时间 2017-08-31 20:22:21 内存使用 27.02 MiB
显示代码纯文本
#include<iostream>
#include<cstdio>
#include<cstring>

using namespace std;

int myread()
{
	int f=1;
	int x=0;
	char c;
	c=getchar();
	for(;!isdigit(c);c=getchar()) if(c=='-') f=-1;
	for(;isdigit(c);c=getchar()) x=x*10+(int)(c-'0');
	return f*x;
}

int n,m,l,c[1000010],maxx[4000000],cnt;
int id[1000010],can[1000010];

void buildt(int l,int r,int o)
{
	if(l==r)
	{
		maxx[o]=c[l];
		return;
	}
	int mid=l+r>>1;
	int ls=o<<1;
	int rs=ls+1;
	buildt(l,mid,ls);
	buildt(mid+1,r,rs);
	maxx[o]=min(maxx[ls],maxx[rs]);
	return;
}

void change(int l,int r,int o,int p,int x)
{
	if(l==r)
	{
		if(l==p)
		{
			maxx[o]=x;
		}
		return;
	}
	int mid=l+r>>1;
	int ls=o<<1;
	int rs=ls+1;
	if(mid>=p)
	{
		change(l,mid,ls,p,x);
	}
	else
	{
		change(mid+1,r,rs,p,x);
	}
	maxx[o]=min(maxx[ls],maxx[rs]);
	return;
}

int query(int l,int r,int o,int ll,int rr)
{
	int maxn=1e9;
	if(l>=ll&&r<=rr)
	{
		return maxx[o];
	}
	int mid=l+r>>1;
	int ls=o<<1;
	int rs=ls+1;
	if(mid>=ll)
	{
		maxn=min(maxn,query(l,mid,ls,ll,rr));
	}
	if(mid<rr)
	{
		maxn=min(maxn,query(mid+1,r,rs,ll,rr));
	}
	return maxn;
}

int main()
{
	freopen("faithful.in","r",stdin);
	freopen("faithful.out","w",stdout);
	n=myread();
	m=myread();
	//memset(maxx,-1,sizeof(maxx));
		for(int i=1;i<=n;i++)
		{
			int a;
			a=myread();
			c[i]=a;
		}
		buildt(1,n,1);
		for(int i=1;i<=m;i++)
		{
			int a=myread(),b=myread();
			printf("%d\n",query(1,n,1,a,b));
		}
	return 0;
}