Pagini recente » Cod sursa (job #2823637) | Cod sursa (job #1950072) | Cod sursa (job #3004808) | Cod sursa (job #472761) | Cod sursa (job #2164948)
///cu radical
#include <bits/stdc++.h>
using namespace std;
ifstream f("rmq.in");
ofstream g("rmq.out");
int n,mm,a[100005],rad,b[100005];
int interog(int x,int y) {
int i,j,k=a[x];
int q=(x-1)/rad+1;
int w=(y-1)/rad+1;
for (i=x;i<=rad*q;i++)
k=min(a[i],k);
for (i=q+1;i<=w-1;i++)
k=min(k,b[i]);
for (i=rad*(w-1)+1;i<=y;i++)
k=min(a[i],k);
return k;
}
int main() {
int i,j,x,y;
f>>n>>mm;
rad=sqrt(n);
for (i=1;i<=n;i++) b[i]=1000005;
for (i=1;i<=n;i++) {
f>>a[i];
b[(i-1)/rad+1]=min(a[i],b[(i-1)/rad+1]);
}
for (i=1;i<=mm;i++) {
f>>x>>y;
g<<interog(x,y)<<'\n';
}
return 0;
}