Advertisement
Guest User

num2part

a guest
May 1st, 2016
56
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 0.91 KB | None | 0 0
  1. #include <iostream>
  2. #include <cstdio>
  3. #include <algorithm>
  4. #include <vector>
  5.  
  6. using namespace std;
  7.  
  8. long long n, k;
  9. long long d[110][110];
  10.  
  11.  
  12. int main() {
  13.     freopen("num2part.in", "r", stdin);
  14.     freopen("num2part.out", "w", stdout);
  15.     cin >> n >> k;
  16.     k++;
  17.     d[0][0] = 1;
  18.     for (int i = 1; i <= n; i++) {
  19.         for (int j = 1; j <= i; j++) {
  20.             d[i][j] = d[i - j][0];
  21.             for (int q = j; q <= (i - j); q++) {
  22.                 d[i][j] += d[i - j][q];
  23.             }
  24.         }
  25.     }
  26.  
  27.     bool first = true;
  28.     int iter = 1;
  29.     int cnt = 0;
  30.     while (n > 0) {
  31.         cnt++;
  32.         while (d[n][iter] < k) {
  33.             k -= d[n][iter];
  34.             iter++;
  35.         }
  36.         if (first) {
  37.             first = false;
  38.             cout << iter;
  39.         }
  40.         else {
  41.             cout << "+" << iter;
  42.         }
  43.         n -= iter;
  44.     }
  45.  
  46.     return 0;
  47. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement