Pagini recente » Cod sursa (job #914772) | Cod sursa (job #1674050) | Cod sursa (job #2928149) | Cod sursa (job #1828471) | Cod sursa (job #981061)
Cod sursa(job #981061)
#include <fstream>
using namespace std;
ifstream f("rmq.in");
ofstream g("rmq.out");
int n,m,v[100010],p[100010];
int a[20][100010];
int main(void){
register int i,j,x,y;
f>>n>>m;
for(i=1;i<=n;i++){
f>>v[i];
p[x]=1+p[x/2];
}
f>>x;
for(i=1;i<=n;i++)
a[0][i]=v[i];
for(j=0;(1<<j)<=n;j++){
for(i=1;i<=n;i++){
a[j][i]=a[j-1][i];
if((1<<(j-1))+i<=n && a[j-1][(1<<(j-1))+i]<=a[j][i])
a[j][i]=a[j-1][(1<<(j-1))+i];
}
}
for(;m>0;m--){
f>>x>>y;
j=P[y-x+1];
g<<(a[j][x]<a[j][y-(1<<j)+1])<<"\n";
}
f.close();
g.close();
return 0;
}