fork download
  1. /*
  2. * Author: Geeza
  3. */
  4.  
  5. #include <bits/stdc++.h>
  6.  
  7. #define ld long double
  8. #define ll long long
  9. #define pb push_back
  10. #define fin(a, n) for(int i = a; i < n; i++)
  11. #define fjn(a, n) for(int j = a; j < n; j++)
  12. #define all(a) a.begin(),a.end()
  13. #define allr(a) a.rbegin(),a.rend()
  14. #define FAST ios_base::sync_with_stdio(false), cin.tie(nullptr), cout.tie(nullptr)
  15.  
  16. using namespace std;
  17.  
  18. const double PI = acos(-1);
  19. const int N = 1e5+5;
  20. const ll oo = 0x3f3f3f3f3f3f3f3f;
  21. const int mod = 1000000007, inf = 1e6;
  22.  
  23. string di[] = {"D","L", "U", "R", "UL", "UR", "DL", "DR"};
  24. int dx[] = {+1, +0, +0, -1, -1, -1, +1, +1};
  25. int dy[] = {+0, -1, +1, +0, -1, +1, -1, +1};
  26. char dc[] = {'D', 'L', 'R', 'U'};
  27.  
  28. ll n, k;
  29. vector<ll> v;
  30. map<ll, pair<ll, ll>> mp;
  31. ll dp[205][205][100];
  32.  
  33. ll calc(int idx, int rem, ll fives) {
  34. if (rem == 0) return fives == 0? 0 : -oo;
  35. if (idx == v.size()) return -oo;
  36.  
  37. ll &ret = dp[idx][rem][fives];
  38. if (~ret) return ret;
  39.  
  40. ret = calc(idx+1, rem, fives);
  41. return ret = max(calc(idx+1, rem-1, max(fives-mp[v[idx]].second, 0ll)) + mp[v[idx]].first, ret);
  42. }
  43.  
  44. void solve() {
  45. cin >> n >> k;
  46. v.assign(n, 0);
  47. fin(0, n) cin >> v[i];
  48.  
  49. fin(0, n) {
  50. ll tmp = v[i];
  51. bool good = true;
  52. while (good && tmp > 0) {
  53. if (tmp%2 == 0) {
  54. mp[v[i]].first++;
  55. tmp /= 2;
  56. continue;
  57. }
  58. if (tmp%5 == 0) {
  59. mp[v[i]].second++;
  60. tmp /= 5;
  61. continue;
  62. }
  63. good = false;
  64. }
  65. }
  66.  
  67. memset(dp, -1, sizeof dp);
  68. ll ans = -oo;
  69. for (int i = 10; i >= 0; i--) {
  70. ans = max(min((ll)i, calc(0, k, i)), ans);
  71. }
  72. cout << ans << "\n";
  73. }
  74.  
  75. int main() {
  76. FAST;
  77. #ifndef ONLINE_JUDGE
  78. freopen("input.txt","r",stdin);
  79. freopen("output.txt","w",stdout);
  80. #endif
  81. int tt = 1; //cin >> tt;
  82. while(tt--){
  83. solve();
  84. }
  85. return 0;
  86. }
Success #stdin #stdout 0.01s 36444KB
stdin
Standard input is empty
stdout
0