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
-~----------~----~----~----~------~----~------~--~---

Reply via email to