Cod sursa(job #3217294)

Utilizator Gerald123Ursan George Gerald123 Data 22 martie 2024 10:37:22
Problema Range minimum query Scor 0
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.67 kb
//circular
#include <bits/stdc++.h>
#define MOD 1000000007
using namespace std;
ifstream fin("circular.in");
ofstream fout("circular.out");
long long n,i,j,doi=2,v[100010],qrt[100][100010],st,dr,nr,k;
int main()
{
    fin>>n>>k;
    for(i=1; i<=n; i++)
    {
        fin>>v[i];
        qrt[0][i]=v[i];
    }
    for(i=1; doi<=n; i++)
    {
        for(j=1; j+doi-1<=n; j++)
        {
            qrt[i][j]=min(qrt[i-1][j],qrt[i-1][j+doi/2]);
        }
        doi*=2;
    }
    for(i=1;i<=k;i++)
    {
        fin>>st>>dr;
        nr=dr-st+1;
        nr=log2(nr);
        fout<<min(qrt[nr][st],qrt[nr][dr-(1<<nr)+1])<<'\n';
    }

    return 0;

}