其实只需要把两种情况列出来再比对就可以了

#include<bits/stdc++.h>
using namespace std;
int n;
int a[55];
int b[55];
int c[55];
bool prepare(int x,int y){//重载sort
    return x > y;
}
int main(){
    scanf("%d",&n);
    for(int i = 1;i <= n;i ++){
        scanf("%d",&a[i]);
        b[i] = a[i];
        c[i] = a[i];
    }//读入、处理

    sort(b+1,b+n+1);
    sort(c+1,c+n+1,prepare);//排序

    bool t1 = true;
    for(int i = 1;i <= n;i ++)
        if(b[i] != a[i]){
            t1 = false;
            break;
        }
    if(t1){
        printf("sorted\n");
        return 0;
    }//判断第一种、输出

    bool t2 = true;
    for(int i = 1;i <= n;i ++)
        if(c[i] != a[i]){
            t2 = false;
            break;
        }
    if(t2){
        printf("sorted\n");
        return 0;
    }//判断第二种、输出

    printf("unsorted\n");//两次都不输出,则无序
}