If you have next_permutation, an easy way to handle adding the zero is to put it in the leading position, run next_permutation, and then check if the zero is still leading. If so, drop it, otherwise, output.
On Sep 12, 5:09 pm, Grant Kot <[email protected]> wrote: > there's a language that has that? anyway, wikipedia has sums everything up > nicely in four easy steps: > > > The following algorithm generates the next permutation lexicographically > > after a given permutation. It changes the given permutation in-place. > > > 1. Find the highest index *i* such that s[i] < s[i+1]. If no such index > > exists, the permutation is the last permutation. > > 2. Find the highest index *j* > *i* such that s[j] > s[i]. Such a *j* > > must > > exist, since *i*+1 is such an index. > > 3. Swap s[i] with s[j]. > > 4. Reverse all the order of all of the elements after index *i* > > > if the current number is already the last lexicographic permutation and > > there is no next one, then i basically just have an integer array of length > 10 and find the number of occurrences for 0-9. then i find the smallest > digit greater than 0 that occurs, and make it the first character in a > string, then i add a 0 and then i do a for loop through the occurrences > array and add that many of each number to the string. --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "google-codejam" group. To post to this group, send email to [email protected] To unsubscribe from this group, send email to [email protected] For more options, visit this group at http://groups.google.com/group/google-code?hl=en -~----------~----~----~----~------~----~------~--~---
