Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include<cstring>
- #include<cstdio>
- const int N = 17;
- int dp[N][N];
- int doit(int n, int k) {
- if(n == 0) return 0;
- if(k == 1) return 1;
- if(dp[n][k] != -1) return dp[n][k];
- return dp[n][k] = doit(n - 1, k - 1) + doit(n - 1, k);
- }
- int main() {
- memset(dp, -1, sizeof dp);
- for(int i = N; i >= 0; --i)
- for(int j = N; j >= 0; --j)
- doit(i, j);
- freopen("c.in", "r", stdin);
- int n;
- while(scanf("%d", &n) != EOF) {
- ++n;
- printf("%d ", 1);
- for(int i = 0; i < N; ++i)
- if(dp[n][i] > 0)
- printf("%d ", dp[n][i]);
- printf("\n");
- }
- }
Add Comment
Please, Sign In to add comment