Advertisement
Guest User

Untitled

a guest
Oct 1st, 2014
173
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 1.08 KB | None | 0 0
  1. static void printArray(int[] arr, int k) {
  2.         for (int i = 0; i < k; i++) {
  3.             System.out.print(arr[i] + " ");
  4.         }
  5.         System.out.println();
  6.     }
  7.  
  8.     static int next(int[] arr, int k) {
  9.         int i = k - 1;
  10.         int sum = 0;
  11.  
  12.         do
  13.             sum += arr[i--];
  14.         while (i > 0 && arr[i - 1] <= arr[i]);
  15.         arr[i]++;
  16.         k = i + sum;
  17.  
  18.         for (int j = i + 1; j < k; j++)
  19.             arr[j] = 1;
  20.  
  21.         return k;
  22.     }
  23.  
  24.     static void solve(int n) {
  25.         if (n == 1) {
  26.             System.out.println(1);
  27.             return;
  28.         }
  29.         int k = n;
  30.         int[] arr = new int[n];
  31.         for (int i = 0; i < n; i++) {
  32.             arr[i] = 1;
  33.             System.out.print(1 + " ");
  34.         }
  35.         System.out.println();
  36.         do {
  37.             k = next(arr, k);
  38.             printArray(arr, k);
  39.         } while (k > 1);
  40.     }
  41.  
  42.     public static void main(String[] args) throws IOException {
  43.         MyReader reader = new MyReader(System.in);
  44.         int n = reader.nextInt();
  45.         solve(n);
  46.     }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement