Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include<stdio.h>
- int n;
- int space[10] = {2,3,4,3,4,5,4,3,5,3};
- int adj[10][5] = {{0,8},{1,2,4},{1,2,3,5},{2,3,6},{1,4,5,7},{2,4,5,6,8},{3,5,6,9},{4,7,8},{0,5,7,8,9},{6,8,9}};
- int dp[10][16];
- int call(int num,int pos)
- {
- if(pos >= n)return 1;
- if(dp[num][pos])return dp[num][pos];
- int sum = 0;
- for(int i=0;i<space[num];i++){
- sum += call(adj[num][i],pos+1);
- }
- return dp[num][pos] = sum;
- }
- int main()
- {
- scanf("%d",&n);
- int ans = 0;
- for(int i=0;i<=9;i++){
- ans += call(i,1);
- }
- printf("%d",ans);
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment