Cod sursa(job #2790581)

Utilizator whitevader28Albu Alexandru whitevader28 Data 29 octombrie 2021 11:32:50
Problema Range minimum query Scor 20
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.63 kb
#include <iostream>
#include <fstream>

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

int main(){
    int N, M, i, j, nr, st, dr;
    fin>>N>>M;
    int a[N], m[N][N];
    for(int i=0; i<N; i++)
        fin>>a[i];
    for(int i=0; i<N; i++)
        m[i][i]=a[i];
    for(int j=1; j<N; j++)
    {
        nr=j;
        for(i=0; i<N-j; i++)
        {
            m[i][nr]=min(m[i+1][nr], m[i][nr-1]);
            nr++;
        }
    }
    while(M)
    {
        fin >> st >> dr;
        fout << m[st-1][dr-1] << '\n';
        M--;
    }
    fin.close();
    fout.close();
    return 0;
}