Pagini recente » Cod sursa (job #1072292) | Cod sursa (job #373045) | Cod sursa (job #2626084) | Cod sursa (job #1539177) | Cod sursa (job #2624857)
#include <fstream>
#include <algorithm>
#include <cmath>
using namespace std;
const int MAX_LENGTH = 1e5 + 1;
int main(){
int n,m;
int v[MAX_LENGTH][18];
ifstream f("rmq.in");
ofstream g("rmq.out");
f>>n>>m;
for(int i=1; i<=n; ++i)
f>>v[i][0];
for(int i=1; i<=18; ++i)
for(int j=1; j<=n-(1<<(i))+1; ++j)
v[j][i]=min(v[j][i-1], v[j+(1<<(i-1))][i-1]);
int st, dr;
int poz;
for (int i = 1; i <= m; ++i){
f>>st>>dr;
int poz=log2(dr-st+1);
g<<min(v[st][poz], v[dr-(1<<poz)+1][poz])<<endl;
}
}