Cod sursa(job #777821)

Utilizator ionut_blesneagIonut Blesneag ionut_blesneag Data 13 august 2012 15:34:11
Problema Range minimum query Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.6 kb
/* Range Minimum Query*/

#include<fstream>
using namespace std;

ifstream f("rmq.in");
ofstream g("rmq.out");
int n,m,i,j,v[100001],kmax;
int D[18][100001];
int x,y,k,rez;

int minimum(int a, int b)
{if(a<b)
  return a;
 return b; 
}

int main()
{f>>n>>m;
for(i=1; i<=n; i++)
  f>>D[0][i];
i=0;  
while(1<<kmax<=n)  
{i++;
for(j=1; j<=n-(1<<i)+1; j++)
   D[i][j]=minimum(D[i-1][j],D[i-1][j+1<<(i-1)]);
kmax++;}

for(i=1; i<=m; i++)
{f>>x>>y;
while(1<<k<=y-x)   k++;
k--;
rez=minimum(D[k][x],D[k][y-(1<<k)+1]);
g<<rez<<endl;
}        
  
f.close();
g.close();
return 0;}