Cod sursa(job #3000197)

Utilizator pachy2007Pachitanu Matei pachy2007 Data 12 martie 2023 10:22:16
Problema Range minimum query Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.54 kb
#include <bits/stdc++.h>

using namespace std;
ifstream fin("rmq.in");
ofstream fout("rmq.out");

int n,ep2,m,i,p,ind,z,j,x,lg,mini,rmq[1002][100012];
int main()
{
    fin>>n>>m;
    for(i=1;i<=n;i++)
		fin>>rmq[0][i];
	 for(ep2=1,p=2;p<=n;p=p*2,ep2++)
	 {
	 	for(ind=1;ind<=n-p+1;ind++)
		{
			rmq[ep2][ind]=min(rmq[ep2-1][ind] , rmq[ep2-1][ind+p/2]);

		}
	 }
	 for(z=1;z<=m;z++)
	 {
	   fin>>i>>j;
	   lg=j-i+1;
	   x=log2(lg);
	   mini=min(rmq[x][i] , rmq[x][j-(1<<x)+1]);
	   fout<<mini<<'\n';
	 }
    return 0;
}