Pagini recente » Cod sursa (job #403619) | Cod sursa (job #174678) | Cod sursa (job #2060026) | Cod sursa (job #3251539) | Cod sursa (job #3230074)
/******************************************************************************
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[100005];
int RMQ[100005][22],sir[100005];
int n,i,j,q,a,b,rasp;
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;
rasp=min(RMQ[a][logaritmi [b-a+1]],RMQ[b+1-(1<<(logaritmi[b-a+1]))][logaritmi[b-a+1]])
;
g<<rasp<<'\n';
}
return 0;
}