fork(1) download
  1. #include<stdio.h>
  2.  
  3.  
  4.  
  5. long long int a[1000005];
  6. int n;
  7.  
  8. int dp(int n) {
  9. if (n == 1)return 0;
  10. if (n == 2)return 1;
  11. if (a[n] != 0) return a[n];
  12. return a[n] = (n-1)*(dp(n-1)+dp(n-2)) % 1000000000;
  13. }
  14.  
  15. int main() {
  16. scanf("%d", &n);
  17. printf("%d", dp(n));
  18.  
  19.  
  20.  
  21.  
  22.  
  23. }
Success #stdin #stdout 0s 22288KB
stdin
165455
stdout
-836908074