Pagini recente » Cod sursa (job #404525) | Cod sursa (job #2865321) | Cod sursa (job #933129) | Rating Sabina Bortos (Amber) | Cod sursa (job #1796898)
#include <cstdio>
#include <cstring>
#include <algorithm>
#include <vector>
#define INF 2140000000
#define MaxN 100005
#define MaxLog 17
using namespace std;
FILE *IN,*OUT;
int N,M,v[MaxLog][MaxN],L[MaxN],X,Y,Log;
int main()
{
IN=fopen("rmq.in","r");
OUT=fopen("rmq.out","w");
fscanf(IN,"%d%d",&N,&M);
for(int i=2;i<=N;i++)
L[i]=L[i/2]+1;
for(int i=1;i<=N;i++)
fscanf(IN,"%d",&v[0][i]);
for(int i=1;i<=N;i++)
for(int j=1;j<MaxLog;j++)
v[j][i]=min(v[j-1][i],INF*!(i>1<<j-1)+v[j-1][i-(1<<j-1)]);
for(int i=1;i<=M;i++)
{
fscanf(IN,"%d%d",&X,&Y);
Log=L[Y-X+1];
fprintf(OUT,"%d\n",min(v[Log][Y],v[Log][X+(1<<Log)-1]));
}
return 0;
}