Cod sursa(job #673418)

Utilizator lucian666Vasilut Lucian lucian666 Data 4 februarie 2012 14:26:00
Problema Range minimum query Scor 30
Compilator cpp Status done
Runda Arhiva educationala Marime 0.55 kb
#include<fstream>
using namespace std;
ofstream fout("rmq.out");
int n,m,a[100009];
int divide(int *,int,int);
int minim(int,int);
int main()
{
	ifstream fin("rmq.in");
	fin>>n>>m;
	for(int i=1;i<=n;i++)
		fin>>a[i];
	int x,y;
	for(int j=1;j<=m;j++)
	{
		fin>>x>>y;
		fout<<divide(a,x,y);
		fout<<"\n";
	}
	return 0;
}
int minim(int a,int b)
{
	return a<b?a:b;
}
int divide(int *v,int st,int dr)
{
	if(st==dr)
		return v[st];
	else
	{
		int mid;
		mid=(st+dr)/2;
		return minim(divide(v,st,mid),divide(v,mid+1,dr));
	}
}