题解 P2525 【Uim的情人节礼物·其之壱】

· · 题解

STL的事情,不用说了

prev_permutation函数可以制造前一个排列,如果已经为第一个,则返回false。

代码很简单。

#include<bits/stdc++.h>
using namespace std;
int n,a[10000];
int main()
{
    cin>>n;
    for(int i=0;i<n;i++)   //读入数据
        cin>>a[i];
    if(prev_permutation(a,a+n))  //如果为真就输出数组
        for(int i=0;i<n;i++)
            cout<<a[i]<<" ";
    else cout<<"ERROR";   //否则输出ERROR
    cout<<endl;
    return 0;
}
然后就完了