使用STL的next_permutation()即可快速得解。
C++(0.008)
/*******************************************************/
/* UVa 146 ID Codes */
/* Author: Maplewing [at] knightzone.studio */
/* Version: 2012/11/29 */
/*******************************************************/
#include <iostream>
#include <cstdio>
#include <algorithm>
using namespace std;
int main(){
string code;
while( getline( cin, code ) && code != "#" ){
if( next_permutation( code.begin(), code.end() ) ){
printf( "%s\n", code.c_str() );
}
else{
printf( "No Successor\n" );
}
}
return 0;
}