Saturday, June 6, 2015

LightOJ - 1006 - Hex-a-bonacci

  1. /****************#####    بِسْمِ اللَّهِ الرَّحْمَنِ الرَّحِيم  #####*******************
  2. __________________________________________________________________________
  3. ######################  Ya-Seen Arafat(ACWizard) #########################
  4. ######################        UAP-CSE-33B        #########################
  5. *************************************************************************/
  6. #include <bits/stdc++.h>
  7. #define sc(n) scanf("%d", &n)
  8. #define S 10003
  9. #define md 10000007
  10. using namespace std;
  11. typedef long long LL;
  12. int a, b, c, d, e, f;
  13. int dp[S];
  14. int fn( int n ) {
  15.     if( n == 0 ) return a;
  16.     if( n == 1 ) return b;
  17.     if( n == 2 ) return c;
  18.     if( n == 3 ) return d;
  19.     if( n == 4 ) return e;
  20.     if( n == 5 ) return f;
  21.     if(dp[n] != -1)return dp[n];
  22.     dp[n] = ( fn(n-1)%md + fn(n-2)%md + fn(n-3)%md + fn(n-4)%md + fn(n-5)%md + fn(n-6)%md )%md;
  23.     return dp[n]%md;
  24. }
  25. int main() {
  26.     int n, caseno = 0, cases;
  27.     scanf("%d"&cases);
  28.     while( cases-- ) {
  29.         memset(dp, -1sizeof(dp));
  30.         scanf("%d %d %d %d %d %d %d"&a, &b, &c, &d, &e, &f, &n);
  31.         printf("Case %d: %d\n"++caseno, fn(n) % md);
  32.     }
  33.     return 0;
  34. }

1 comment:

  1. dp array size should be at least 1e5 otherwise the code will not wrok if n>6

    ReplyDelete