Pagini recente » Cod sursa (job #337121) | Cod sursa (job #1221570) | Cod sursa (job #951866) | Cod sursa (job #2142808) | Cod sursa (job #886614)
Cod sursa(job #886614)
#include <fstream>
using namespace std;
ifstream fin("rmq.in");
ofstream fout("rmq.out");
int *a[100001],v[100001]; int n;
void calculate (int x)
{
a[x]=new int [n-x+2];
a[x][1]=v[x];
for (int i=2;i<=n-x+1;i++)
{
if (a[x][i-1]<v[x+i-1]) a[x][i]=a[x][i-1];
else a[x][i]=v[x+i-1];
}
}
int main()
{
int x,y,m,i;
fin>>n>>m;
for (i=1;i<=n;i++) fin>>v[i];
for (i=1;i<=m;i++)
{
fin>>x>>y;
if (a[x]==NULL) calculate (x);
fout<<a[x][y-x+1]<<"\n";
}
}