分割統治法

分割統治法を用いて最大値を求める.

#include <bits/stdc++.h>
using namespace std;
int findMaximum(int A[],int left,int right)
{
	int u,v,m,x,l=left,r=right;
	m = (l+r)/2;
	if(l==r-1){
		return A[l];
	}else{
		u = findMaximum(A,l,m);
		v = findMaximum(A,m,r);
		x = max(u,v);
	}
	return x;
}


int main()
{
	int A[10]={5,2,1,10,100,3,1,82,-1,-40};
	cout<<findMaximum(A,0,10)<<endl;
	return 0;
}