Advertisement
Guest User

Untitled

a guest
Jun 25th, 2018
76
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.79 KB | None | 0 0
  1. #include <iostream>
  2.  
  3. using namespace std;
  4. int n,MOD;
  5. #define MAXN 1000100
  6. string s;
  7. int tab[MAXN];
  8. int dyn[MAXN];
  9. int main()
  10. {
  11. ios_base::sync_with_stdio(0);
  12. cin.tie(0);
  13. cout.tie(0);
  14.  
  15. cin >> n >> MOD >> s;
  16. for (int i=0; i!=n; ++i)
  17. {
  18. if (s[i] == '1') tab[i] = 1;
  19. else tab[i] = 0;
  20. }
  21.  
  22. dyn[0] = 1;
  23. dyn[1] = tab[1] * dyn[0];
  24. dyn[2] = tab[2] * (dyn[1] + dyn[0]);
  25. dyn[3] = tab[3] * (dyn[1] + dyn[2] + dyn[0]);
  26. dyn[4] = tab[4] * (dyn[1] + dyn[2] + dyn[3] + dyn[0]);
  27. dyn[5] = tab[5] * (dyn[1] + dyn[2] + dyn[3] + dyn[4] + dyn[0]);
  28. for (int i=6; i<n; ++i)
  29. {
  30. dyn[i] = (tab[i] * (dyn[i-1] + dyn[i-2] + dyn[i-3] + dyn[i-4] + dyn[i-5] + dyn[i-6]))%MOD;
  31. }
  32.  
  33. cout << dyn[n-1]%MOD;
  34. return 0;
  35. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement