Pagini recente » Cod sursa (job #305374) | Cod sursa (job #935681) | Cod sursa (job #2789442) | Cod sursa (job #1115585) | Cod sursa (job #1690815)
# include <fstream>
# define DIM 100010
using namespace std;
ifstream fin("rmq.in");
ofstream fout("rmq.out");
int m[25][DIM],v[DIM],p[DIM],lg[25],n,i,j,a,b,m1,st,dr;
int main () {
fin>>n>>m1;
for(i=1;i<=n;i++){
fin>>v[i];
m[0][i]=v[i];
}
lg[0]=1;
for(i=1;i<=20;i++)
lg[i]=lg[i-1]*2;
for(i=2;i<=n;i++)
p[i]=p[i/2]+1;
for(i=1;i<=p[n];i++)
for(j=1;j<=n;j++)
m[i][j]=min(m[i-1][j],m[i-1][j+lg[p[i-1]]]);
for(i=1;i<=m1;i++){
fin>>st>>dr;
a=p[dr-st+1];
b=lg[a];
fout<<min(m[a][st],m[a][dr-b+1])<<"\n";
}
return 0;
}