It is 2084 and the year of Big Brother has finally arrived, albeit a century late. In order to exercise greater control over its citizens and thereby to counter a chronic breakdown in law and order, the Government
decides on a radical measure--all citizens are to have a tiny microcomputer surgically implanted in their left wrists. This computer will contains all sorts of personal information as well as a transmitter which will allow people's movements to be logged and
monitored by a central computer. (A desirable side effect of this process is that it will shorten the dole queue for plastic surgeons.)
An essential component of each computer will be a unique identification code, consisting of up to 50 characters drawn from the 26 lower case letters. The set of characters for any given code is chosen somewhat haphazardly.
The complicated way in which the code is imprinted into the chip makes it much easier for the manufacturer to produce codes which are rearrangements of other codes than to produce new codes with a different selection of letters. Thus, once a set of letters
has been chosen all possible codes derivable from it are used before changing the set.
For example, suppose it is decided that a code will contain exactly 3 occurrences of `a', 2 of `b' and 1 of `c', then three of the allowable 60 codes under these conditions are:
abaabc
abaacb
ababac
These three codes are listed from top to bottom in alphabetic order. Among all codes generated with this set of characters, these codes appear consecutively in this order.
Write a program to assist in the issuing of these identification codes. Your program will accept a sequence of no more than 50 lower case letters (which may contain repeated characters) and print the successor code
if one exists or the message `No Successor' if the given code is the last in the sequence for that set of characters.
Input and Output
Input will consist of a series of lines each containing a string representing a code. The entire file will be terminated by a line consisting of a single#.
Output will consist of one line for each code read containing the successor code or the words `No Successor'.
Sample input
abaacb
cbbaa
#
Sample output
ababac
No Successor
这道题的一开始题意都没看懂,后来才发现就是求一个序列按照字典序的下一个排列组合。。。可以直接调用STL
#include <iostream>
#include <algorithm>
#include <string>
using namespace std;
int main()
{
string str;
while(cin >> str)
{
if(str[0]=='#') break;
int f=0;
if(next_permutation(str.begin(), str.end()))
{
f=1;
cout << str << endl;
}
if(!f) cout<< "No Successor" << endl;
}
return 0;
}
分享到:
相关推荐
Common Flash Interface (CFI) ID Codes
C++ CodesC++ CodesC++ CodesC++ CodesC++ CodesC++ CodesC++ CodesC++ Codes
codes.zipcodes.zipcodes.zipcodes.zip
Fountain codes are record-breaking sparse-graph codes for channels with erasures, such as the internet, where files are transmitted in multiple small packets, each of which is either received without ...
Introduction to LDPC codes
Low Density Parity Check Codes Robert G. Gallager 1963
由贴片器件代码查找型号 SMD-codes Active SMD semiconductor components marking codes
Wu Yufei的经典的turbo codes的matlab程序
codes
scancodes键盘扫描码!超赞的哦!
Java programming codes
Crypto NTE Error Codes
Introduction To Error Correcting Codes
Error-Correcting Codes, by Professor Peterson, was originally published in 1961. Now, with E. J. Weldon, Jr., as his coauthor, Professor Peterson has extensively rewritten his material. The book ...
codes for collaborative filtering, which enables us to efficiently make recommendations with time complexity that is independent of the total number of items. We propose to construct binary codes for ...
Android安全codesAndroid安全codes
fk fk2_codes 2_codes fk2_codes fk2_codes fk2_codes fk2_codes fk2_codes
Fundamentals of Error-Correcting Codes
Matlab codes for analysis numerical