1259. Handshakes That Don't Cross #378
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.

Resolves: #216
Algorithm:
What happens here is that each hand shake divides the group into 2 distinct groups. The total number of handshakes for this division would then be handshakes for the one group times the handshakes for the other group, by the multiplication principle. To count the number of such divisions, we can choose a person like
person 1to be the pivot. This person can shake hands with person2, 4, 6, ..., n-2, n. Shaking hands with person k would seperate the group into the groups of size k-2 and n-k. This also equivalent to calling the handshake function with values0, 2, 4, ..., n-4, n-2. We can derive a recurrence relation from this:The recursive formula should look something like this:
We can implement this using recursion with memoization as well as dynamic programming.