题解 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;
}
然后就完了