c++
第一题
#include<iostream>
#include<vector>
#include<algorithm>
using namespace std;
int N;
int main() {
    while(cin >> N) {
        vector<int> arr;
        for (int i = 0; i < N; i++) {
            int a;
            cin >> a;
            arr.push_back(a);
        }
        vector<int> dp(arr.begin(), arr.end());
        sort(arr.begin(), arr.end());
        int num = 0;
        int xmin;
        int xmax;
        for (int i = 0; i < N; i++) {
            if (dp[i] == arr[i])
                num += 1;
            else
            {
                xmin = dp[i];
                xmax = dp[i];
                int left = i;
                for (int j = i; j < N; j++) {
                    xmin = min(xmin, dp[j]);
                    xmax = max(xmax, dp[j]);
                    if (xmin == arr[left] && xmax == arr[j]) {
                        num++;
                        i = j;
                        break;
                    }
                }
            }
        }
        cout << num;
    }
    return 0;
}