#include <iostream>
#include <vector>
#include <string>
#include <algorithm>
#include <iomanip>
#include <climits>
#include <cstdlib>
#include <map>
#include <unordered_set>
using std::cin, std::cout, std::endl, std::string, std::min;
int main()
{
int n;
cin >> n;
std::vector<int> a(n);
for (int i = 0; i < n; i++) {
cin >> a[i];
}
std::vector<int> pref_min(n, 0);
std::vector<int> suf_min(n, n - 1);
std::vector<int> pref_max(n, 0);
std::vector<int> suf_max(n, n - 1);
for (int i = 1; i < n; i++) {
if (a[i] < a[pref_min[i - 1]]) {
pref_min[i] = i;
} else {
pref_min[i] = pref_min[i - 1];
}
if (a[i] > a[pref_max[i - 1]]) {
pref_max[i] = i;
} else {
pref_max[i] = pref_max[i - 1];
}
}
for (int i = n - 2; i >= 0; i--) {
if (a[i] <= a[suf_min[i + 1]]) {
suf_min[i] = i;
} else {
suf_min[i] = suf_min[i + 1];
}
if (a[i] >= a[suf_max[i + 1]]) {
suf_max[i] = i;
} else {
suf_max[i] = suf_max[i + 1];
}
}
int best_i_1 = 0, best_j_1 = 1;
int best_i_2 = 0, best_j_2 = 1;
for (int i = 1; i < n; i++) {
if (a[best_i_1] - a[best_j_1] > a[pref_min[i - 1]] - a[suf_max[i]]) {
best_i_1 = pref_min[i - 1];
best_j_1 = suf_max[i];
}
if (a[best_i_2] - a[best_j_2] < a[pref_max[i - 1]] - a[suf_min[i]]) {
best_i_2 = pref_max[i - 1];
best_j_2 = suf_min[i];
}
}
cout << best_i_1 + 1 << " " << best_j_1 + 1 << endl << best_i_2 + 1 << " " << best_j_2 + 1 << endl;
}