找寻每一段和的规律,利用vector容器

#include <iostream>
using namespace std;
#include <vector>
const int N = 1e5+10;
int n;
long long ans =0;
int main()
{
    scanf("%d",&n);
    vector<long long> v;
    int cnt = 0,last;
    for(int i=1;i<=n;i++) {
        int x;
        scanf("%d",&x);
        if(i==1||x>=last) cnt++;
        else {
            v.push_back(cnt);
            cnt = 1;
        }
        last = x;
    }
    v.push_back(cnt);
    for(int i=0;i<v.size();i++) ans += v[i]*(v[i]+1)/2;
    printf("%lld",ans);
    return 0;
    
}