Cod sursa(job #2292833)

Utilizator dia.ionescuIonescu Diana dia.ionescu Data 30 noiembrie 2018 01:02:13
Problema Range minimum query Scor 10
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.91 kb
#include <iostream>
#include <fstream>
#include <vector>
#include <utility>
#include <algorithm>
using namespace std;

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

int main()
{
    vector<int> v;
    vector< pair<int, int> > queries;
    int N, M, x, y, a[100010][20];
    fin >> N >> M;
    for (int i = 0; i < N; i++) {
        fin >> x;
        v.push_back(x);
    }

    for (int i = 0; i < M; i++) {
        fin >> x >> y;
        queries.push_back(make_pair(x, y));
    }

    for (int i = 0; i < N; i++) {
        for (int j = i; j < N; j++) {
            if (i == j)
                a[i][j] = v[i];
            else
                a[i][j] = min(a[i][j-1], v[j]);
        }
    }

    for (int i = 0; i < M; i++) {
            int f, l;
            f = queries[i].first - 1;
            l = queries[i].second - 1;
        fout <<  a[f][l]  << "\n";
    }
    return 0;
}