又是一个不用数组系列 用到一个非常基本的数学 (b-a)*(c-b)>=0,那么a,b,c就是有序的

#include <iostream>
using namespace std;
int main()
{
    int len;
    cin>>len;
    int a,b;
    cin>>a>>b;
    int c;
    len -= 2;
    bool active = false;
    while(len--)
    {
        cin>>c;
        if((b-a)*(c-b)>=0)
        {
            a = b;
            b = c;
            active = true;
        }
        else
        {
            cout<<"unsorted";
            active = false;
            break;
        }
    }
    if(active) cout<<"sorted";
    return 0;
}

我感觉我的代码还是有点繁琐,有没有人可以优化一下 谢谢,点个赞再走吧

几年后的优化:修改了一下代码的判断

#include <iostream>
using namespace std;

int main() {
    int len;
    cin >> len;
    
    if (len < 3) {
        cout << "sorted" << endl;
        return 0;
    }

    int a, b, c;
    cin >> a >> b;

    bool increasing = (b >= a);
    bool decreasing = (b <= a);

    for (int i = 2; i < len; ++i) {
        cin >> c;

        if ((increasing && c < b) || (decreasing && c > b)) {
            cout << "unsorted" << endl;
            return 0;
        }

        a = b;
        b = c;
    }

    cout << "sorted" << endl;
    return 0;
}