fork download
  1. #include<bits/stdc++.h>
  2. using namespace std;
  3. typedef long long ll;
  4.  
  5. template<class T> bool maximize(T &a, const T &b){ return (a < b ? a = b, 1 : 0); }
  6. template<class T> bool minimize(T &a, const T &b){ return (a > b ? a = b, 1 : 0); }
  7.  
  8. #define fi first
  9. #define se second
  10. #define pb push_back
  11.  
  12. #define f(i, k, n, d) for (int i = k; i <= n; i += d)
  13. #define rf(i, k, n, d) for (int i = k; i >= n; i += d)
  14.  
  15. #define pb push_back
  16. #define ii pair<int, int>
  17.  
  18. #define all(x) x.begin(), x.end()
  19.  
  20. const string NAME = "SHOES";
  21.  
  22. /*** end of template ***/
  23.  
  24. const int N = 2e5 + 10, mod = 1e9 + 7;
  25. const int INF=0x3f3f3f3f;
  26.  
  27. ll d[N],a[N],ans,t = 0, x;
  28. ll n,k;
  29. int f2(int x)
  30. {
  31. int t = 0;
  32. while(x % 2 == 0)
  33. {
  34. t++;
  35. x /= 2;
  36. }
  37. return t;
  38. }
  39. void solve() {
  40. cin >> n >> k;
  41. f(i , 1 , n , 1)
  42. {
  43. cin >> x;
  44. x = f2(x);
  45. if(a[x] == 0)
  46. {
  47. t++;
  48. d[t] = x;
  49. }
  50. a[x]++;
  51. }
  52. f(i , 1 , t , 1)
  53. {
  54. f(j , i , t , 1)
  55. {
  56. f(b , j , t , 1)
  57. {
  58. if(d[i] + d[j] + d[b] >= k)
  59. {
  60. int d1 = d[i],d2 = d[j],d3 = d[b];
  61. if(d1 != d2 && d1 != d3 && d2 != d3)
  62. {
  63. ans += a[d1]*a[d2]*a[d3];
  64. }
  65. else if(d1 != d2 && d2 == d3)
  66. {
  67. ans += a[d1]* a[d2] *( a[d2] - 1) / 2;
  68. }
  69. else if(d2 != d3 && d2 == d1)
  70. {
  71. ans += a[d3] * a[d1] * (a[d2] - 1) / 2;
  72. }
  73. else if(d1 != d2 && d3 == d1)
  74. {
  75. ans += a[d2] * a[d1] *(a[d1] - 1) / 2;
  76. }
  77. else ans += a[d1] *(a[d1] - 1)*(a[d1] - 2) / 6;
  78. }
  79. }
  80. }
  81. }
  82. cout << ans;
  83. }
  84.  
  85.  
  86. int main() {
  87. if(fopen((NAME + ".INP").c_str(), "r"))
  88. {
  89. freopen((NAME + ".INP").c_str(), "r", stdin);
  90. freopen((NAME + ".OUT").c_str(), "w", stdout);
  91. }
  92. ios_base::sync_with_stdio(0);
  93. cin.tie(0);
  94. cout.tie(0);
  95.  
  96.  
  97. int testcase = 1 ;
  98. //cin>>testcase;
  99.  
  100. while(testcase--) solve();
  101.  
  102. return 0;
  103. }
  104.  
Success #stdin #stdout 0.01s 5304KB
stdin
Standard input is empty
stdout
Standard output is empty