Pagini recente » Cod sursa (job #1135911) | Cod sursa (job #2320264) | Cod sursa (job #2278407) | Cod sursa (job #212153) | Cod sursa (job #1903298)
/*Arbori de intervale
*/
#include<fstream>
#include<vector>
#include<string>
const int NMAX = 100000;
using namespace std;
ifstream fin("arbint.in");
ofstream fout("arbint.out");
string sir;
int i, n, k, j, m, nr, sol, x , y;
int MaxArb[200005];
int a[NMAX + 5];
void build(int n, int start, int end);
/*void build(int n, int start, int end) {
if (start == end) {
tree[n] = v[end];
return;
}
int mid = (start + end) / 2;
build(n * 2, start, mid);
build(n * 2 + 1, mid + 1, end);
tree[n] = max(tree[n * 2], tree[n * 2 + 1]);
}*/
int main()
{
fin >> n >> m;
for(i = 1; i <= n; i++)
{
fin >> a[i];
}
build(1, 1, n);
}
void build(int n, int start, int end) {
if (start == end) {
MaxArb[n] = a[end];
return;
}
int mid = (start + end) / 2;
build(n * 2, start, mid);
build(n * 2 + 1, mid + 1, end);
MaxArb[n] = max(MaxArb[n * 2], MaxArb[n * 2 + 1]);
}