Pagini recente » Cod sursa (job #855589) | Cod sursa (job #1714987) | Cod sursa (job #1900931) | Cod sursa (job #153162) | Cod sursa (job #3230064)
/******************************************************************************
Online C++ Compiler.
Code, Compile, Run and Debug C++ program online.
Write your code in this editor and press "Run" button to compile and execute it.
*******************************************************************************/
#include <bits/stdc++.h>
using namespace std;
ifstream f("rmq.in");
ofstream g("rmq.out");
int logaritmi[100002];
int RMQ[100002][22],sir[100002];
int n,i,j,q,a,b;
int main()
{
f>>n>>q;
for (i=1;i<=n;i++)
{ f>>sir[i];
RMQ[i][0]=sir[i];
}
for (i=2;i<=n;i++) logaritmi[i]=logaritmi[i/2]+1;
for(j=1;j<=logaritmi[n];j++)
{ //cout<<j<<" ";
for(i=1;i<=n;i++)
{ RMQ[i][j]=min(RMQ[i][j-1],RMQ[i+(1<<(j-1))][j-1]);
//cout <<RMQ[i][j]<<' ';
}
//cout<<'\n';
}
while(q--)
{ f>>a>>b;
if (a==b)g<< sir[a]<<'\n';
else
g<<min(RMQ[a][logaritmi [b-a+1]],RMQ[b+1-(1<<(logaritmi[b-a+1]))][logaritmi[b-a+1]])<<'\n';
}
return 0;
}