Advertisement
Galebickosikasa

Untitled

May 12th, 2020
44
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.44 KB | None | 0 0
  1. // #pragma GCC optimize("Ofast,no-stack-protector,unroll-loops,fast-math")
  2. // #pragma GCC target("sse,sse2,sse3,ssse3,sse4,sse4.1,sse4.2,popcnt,abm,mmx,avx")
  3. // #pragma comment(linker, "/stack:200000000"]
  4.  
  5. #include <iostream>
  6. #include <vector>
  7. #include <cmath>
  8. #include <algorithm>
  9. #include <unordered_set>
  10. #include <unordered_map>
  11. #include <set>
  12. #include <map>
  13. #include <queue>
  14. #include <deque>
  15. #include <bitset>
  16. #include <stack>
  17. #include <random>
  18. #include <fstream>
  19. #include <sstream>
  20. #include <chrono>
  21.  
  22. #define fi first
  23. #define se second
  24. #define pb push_back
  25. #define ll long long
  26. #define ld long double
  27. #define hm unordered_map
  28. #define pii pair<int, int>
  29. #define sz(a) (int)a.size()
  30. #define all(a) a.begin(), a.end()
  31. #define cinv(v) for (auto& x: v) cin >> x
  32. #define fr(i, n) for (int i = 0; i < n; ++i)
  33. #define fl(i, l, n) for (int i = l; i < n; ++i)
  34. #define ull uint64_t
  35.  
  36. #define int ll
  37.  
  38. using namespace std;
  39.  
  40. #ifdef __LOCAL
  41. #define dbg(x) cerr << #x << " : " << x << '\n'
  42. const int maxn = 20;
  43. #else
  44. #define dbg(x)
  45. const int maxn = 2e5 + 20;
  46. #endif
  47.  
  48. //tg: @galebickosikasa
  49.  
  50. const ll inf = (ll) 2e9;
  51. const ld pi = asin (1) * 2;
  52. const ld eps = 1e-8;
  53. const ll mod = (ll)1e9 + 7;
  54. const ll ns = 97;
  55.  
  56. mt19937 rnd(chrono::steady_clock::now().time_since_epoch().count());
  57.  
  58.  
  59.  
  60. signed main () {
  61. ios_base::sync_with_stdio(false);
  62. cin.tie(nullptr);
  63. cout.tie(nullptr);
  64. int n, t;
  65. cin >> n >> t;
  66. vector<ull> goo (n), l2 (n), l3 (n), l6 (n);
  67. cinv (goo);
  68. if (goo[0] % (ull)6 == 0) ++l6[0];
  69. else if (goo[0] % (ull)3 == 0) ++l3[0];
  70. else if (goo[0] % (ull)2 == 0) ++l2[0];
  71. fl (i, 1, n) {
  72. l2[i] = l2[i - 1];
  73. l3[i] = l3[i - 1];
  74. if (goo[i] % (ull)6 == 0) ++l6[i];
  75. else if (goo[i] % (ull)3 == 0) ++l3[i];
  76. else if (goo[i] % (ull)2 == 0) ++l2[i];
  77. }
  78. int ans = 0;
  79. fl (i, t, n) {
  80. int x = goo[i];
  81. if (x % (ull)6 == 0) continue;
  82. else if (x % (ull)2 == 0) {
  83. ans += l3[i - t];
  84. } else if (x % (ull)3 == 0) {
  85. ans += l2[i - t];
  86. }
  87. // dbg (x);
  88. // dbg (ans);
  89. }
  90. fr (i, n) {
  91. int x = goo[i];
  92. if (x % (ull)6 == 0) {
  93. int a = max (0ll, i - t + 1);
  94. int b = max (0ll, n - i - t);
  95. ans += a + b;
  96. dbg (a);
  97. dbg (b);
  98. }
  99. }
  100. cout << ans;
  101.  
  102.  
  103.  
  104.  
  105.  
  106.  
  107. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement