#include <iostream> #include <algorithm> #include <cstdlib> #include <cstdio> #include <cstring> #include <string> #include <vector> #include <queue> #include <deque> #include <stack> #include <set> #include <unordered_set> #include <map> #include <math.h> #include <unordered_map> #include <iterator> #include <utility> #include <functional> using namespace std; typedef long long ll; #define MAX 1000010 int blocks[MAX], flgl[MAX], flgr[MAX]; int main() { int t, count = 0; int max, min; memset(flgl, 0, sizeof(flgl)); memset(flgr, 0, sizeof(flgr)); cin >> t; max = 0; min = 1e9 + 1; for (int i = 0; i < t; i++) { cin >> blocks[i]; } for (int i = 0; i < t; i++) { if (i&&blocks[i - 1] > max) { max = blocks[i - 1]; } if (blocks[i] > max) { flgl[i] = 1; } } for (int i = t - 1; i >= 0; i--) { if (t - i - 1 && blocks[i + 1] < min) { min = blocks[i + 1]; } if (blocks[i] < min) { flgr[i] = 1; } } for (int i = 0; i < t; i++) { if (flgl[i] && flgr[i]) { ++count; } } cout << (t - count) << endl; return 0; } |
Double click to view unformatted code.