Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <bits/stdc++.h>
- using namespace std;
- int main() {
- int n = 0;
- cin >> n;
- vector<int> v;
- cin >> v[0];
- int min_i = 0, max_i = 0;
- for (int i = 1; i < n; ++i) {
- cin >> v[i];
- min_i = (v[min_i] > v[i]) ? i : min_i;
- max_i = (v[max_i] < v[i]) ? i : max_i;
- }
- if (is_sorted(rbegin(v), rend(v))) {
- cout << "0 0";
- return 0;
- }
- if (max_i > min_i) {
- cout << min_i + 1 << ' ' << max_i + 1;
- return 0;
- }
- int min_i2 = min_element(begin(v), begin(v) + max_i) - begin(v);
- int dif1 = v[max_i] - v[min_i2];
- int max_i2 = max_element(begin(v) + min_i, end(v)) - begin(v);
- int dif2 = v[max_i2] - v[min_i];
- int max_i3 = max_element(begin(v) + max_i + 1, begin(v) + min_i) - begin(v);
- int min_i3 = min_element(begin(v) + max_i + 1, begin(v) + min_i) - begin(v);
- int dif3 = v[max_i3] - v[min_i3];
- int val = max(dif1, dif2);
- val = max(val, dif3);
- if (val == dif1)
- cout << min_i2 + 1 << ' ' << max_i + 1;
- else if (val == dif2)
- cout << min_i + 1 << ' ' << max_i2 + 1;
- else if (val == dif3)
- cout << min_i3 + 1 << ' ' << max_i3 + 1;
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement