Parliament
Time Limit: 1000MS | Memory Limit: 10000K | |
Total Submissions: 18887 | Accepted: 8016 |
Description
New convocation of The Fool Land's Parliament consists of N delegates. According to the present regulation delegates should be divided into disjoint groups of different sizes and every day each group has to send one delegate to the conciliatory committee. The composition of the conciliatory committee should be different each day. The Parliament works only while this can be accomplished.
You are to write a program that will determine how many delegates should contain each group in order for Parliament to work as long as possible.
You are to write a program that will determine how many delegates should contain each group in order for Parliament to work as long as possible.
Input
The input file contains a single integer N (5<=N<=1000 ).
Output
Write to the output file the sizes of groups that allow the Parliament to work for the maximal possible time. These sizes should be printed on a single line in ascending order and should be separated by spaces.
Sample Input
7
Sample Output
3 4
这道题目的要求是将给定的整数分解成比它小的数的和,当然最后的和是等于它本身的,这个最后的数列是按照从小到大进行排列,可以从2开始,每次增加一个,比如10,在进行遍历的时候分解为2 3 4,此时10-(2+3+4)=1,为了保证数列是递增的,剩下的1就可以逆向加到2,3,4这个数列中,最后的结果就是2 3 5。
当然这个办法比较通俗,之后又看题解,发现一些大牛用的好像是公式,完全看不懂