Pagini recente » Cod sursa (job #2887042) | Cod sursa (job #636545) | Cod sursa (job #774733) | Cod sursa (job #2406814) | Cod sursa (job #3124136)
#include <iostream>
#include <fstream>
using namespace std;
ifstream fin("date.in");
ofstream fout("date.out");
#define MAX 500
int v[MAX][MAX],a[100001],n,m,L,R;
struct Query{
int L,R;
}q[1000001];
void preprocess(int arr[], int n)
{
for (int i = 0; i < n; i++)
v[i][i] = i;
for (int i = 0; i < n; i++) {
for (int j = i + 1; j < n; j++)
if (arr[v[i][j - 1]] < arr[j])
v[i][j] = v[i][j - 1];
else
v[i][j] = j;
}
}
void RMQ(int arr[], int n, Query q[], int m)
{
preprocess(arr, n);
for (int i = 0; i < m; i++)
{
int L = q[i].L, R = q[i].R;
fout << "Minimum of [" << L
<< ", " << R << "] is "
<< arr[v[L][R]] << endl;
}
}
int main()
{
fin>>n>>m;
for(int i = 0 ; i < n ; i++)
{
fin>>a[i];
}
for(int i=0; i < m ; i++)
{
fin>>L>>R;
q[i]={L-1,R-1};
}
RMQ(a, n, q, m);
return 0;
}