Cod sursa(job #418371)

Utilizator AnDrEwBoYA Andrei AnDrEwBoY Data 15 martie 2010 20:14:45
Problema Range minimum query Scor 20
Compilator cpp Status done
Runda Arhiva educationala Marime 0.5 kb
#include<cstdio>
int V[10000],n,m,i,j,a,b,M[10000][10000];
void read(),solve();
int main()
{
	read();
	solve();
	return 0;
}
void read()
{
	freopen("rmq.in","r",stdin);
	freopen("rmq.out","w",stdout);
	scanf("%d%d",&n,&m);
	for(i=1;i<=n;i++)
		scanf("%d",&V[i]),M[i][i]=i;
	for(i=1;i<=n;i++)
		for(j=i+1;j<=n;j++)
			if(V[M[i][j-1]]<V[j])
				M[i][j]=M[i][j-1];
			else 
				M[i][j]=j;
}
void solve()
{
	for(i=1;i<=m;i++)
	{
		scanf("%d%d",&a,&b);
		printf("%d\n",V[M[a][b]]);
	}
}