Cod sursa(job #1307176)

Utilizator pavlov.ionPavlov Ion pavlov.ion Data 1 ianuarie 2015 15:05:49
Problema Range minimum query Scor 20
Compilator cpp Status done
Runda Arhiva educationala Marime 0.46 kb
#include<fstream>
#include<algorithm>
#define MAXN 20005
using namespace std;
long int  N,M;
int P[MAXN][MAXN],A[MAXN];
ifstream cin("rmq.in");
ofstream cout("rmq.out");
int main(){
int i,j,x,y;
cin>>N>>M;
for(i=1;i<=N;i++)
	cin>>A[i];
for(i=1;i<=N;i++)
	    P[i][i]=i;
for(i=1;i<=N;i++)
	for(j=i+1;j<=N;j++)
		if(A[P[i][j-1]]<A[j])
			P[i][j]=P[i][j-1];
		else
			P[i][j]=j;
while(M--){
	cin>>x>>y;
	cout<<A[P[x][y]]<<"\n";
}
return 0;
}