Advertisement
ke_timofeeva7

OR-подпоследовательность

Nov 5th, 2021
91
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.88 KB | None | 0 0
  1. /*
  2. ⠸⣷⣦⠤⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣀⣠⣤⠀⠀⠀
  3. ⠀⠙⣿⡄⠈⠑⢄⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣀⠔⠊⠉⣿⡿⠁⠀⠀⠀
  4. ⠀⠀⠈⠣⡀⠀⠀⠑⢄⠀⠀⠀⠀⠀⠀⠀⠀⠀⡠⠊⠁⠀⠀⣰⠟⠀⠀⠀⣀⣀
  5. ⠀⠀⠀⠀⠈⠢⣄⠀⡈⠒⠊⠉⠁⠀⠈⠉⠑⠚⠀⠀⣀⠔⢊⣠⠤⠒⠊⠉⡜
  6. ⠀⠀⠀⠀⠀⠀⠀⡽⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠩⡔⠊⠁⠀⠀⠀⠀⠀ ⠀⠇
  7. ⠀⠀⠀⠀⠀⠀⠀⡇⢠⡤⢄⠀⠀⠀⠀⠀⡠⢤⣄⠀⡇⠀⠀⠀⠀⠀⠀⠀ ⢰⠀
  8. ⠀⠀⠀⠀⠀⠀⢀⠇⠹⠿⠟⠀⠀⠤⠀⠀⠻⠿⠟⠀⣇⠀⠀⡀⠠⠄⠒⠊⠁⠀
  9. ⠀⠀⠀⠀⠀⠀⢸⣿⣿⡆⠀⠰⠤⠖⠦⠴⠀⢀⣶⣿⣿⠀⠙⢄⠀⠀⠀⠀⠀⠀
  10. ⠀⠀⠀⠀⠀⠀⠀⢻⣿⠃⠀⠀⠀⠀⠀⠀⠀⠈⠿⡿⠛⢄⠀⠀⠱⣄⠀⠀⠀⠀
  11. ⠀⠀⠀⠀⠀⠀⠀⢸⠈⠓⠦⠀⣀⣀⣀⠀⡠⠴⠊⠹⡞⣁⠤⠒⠉⠀⠀⠀⠀⠀
  12. ⠀⠀⠀⠀⠀⠀⣠⠃⠀⠀⠀⠀⡌⠉⠉⡤⠀⠀⠀⠀⢻⠿⠆⠀⠀⠀⠀⠀⠀⠀
  13. ⠀⠀⠀⠀⠀⠰⠁⡀⠀⠀⠀⠀⢸⠀⢰⠃⠀⠀⠀⢠⠀⢣⠀⠀⠀⠀⠀⠀⠀⠀
  14. ⠀⠀⠀⢶⣗⠧⡀⢳⠀⠀⠀⠀⢸⣀⣸⠀⠀⠀⢀⡜⠀⣸⢤⣶⠀⠀⠀⠀⠀⠀
  15. ⠀⠀⠀⠈⠻⣿⣦⣈⣧⡀⠀⠀⢸⣿⣿⠀⠀⢀⣼⡀⣨⣿⡿⠁⠀⠀⠀⠀⠀⠀
  16. ⠀⠀⠀⠀⠀⠈⠻⠿⠿⠓⠄⠤⠘⠉⠙⠤⢀⠾⠿⣿⠟⠋
  17. */
  18.  
  19.  
  20. #include <iostream>
  21. #include <string>
  22. #include <sstream>
  23. #include <vector>
  24. #include <cmath>
  25. #include <algorithm>
  26. #include <memory.h>
  27. #include <stdio.h>
  28. #include <stack>
  29. #include <deque>
  30. #include <queue>
  31. #include <set>
  32. #include <iterator>
  33. #include <map>
  34. #include <iomanip>
  35. #include <unordered_set>
  36. #define int long long
  37. #define pb push_back
  38. #define double long double
  39. #define endl "\n"
  40. #define fir first
  41. #define sec second
  42. #define un unsigned
  43. #define INF 1000000009
  44. #define pii pair<int, int>
  45. #define all(v) v.begin(), v.end()
  46. using namespace std;
  47.  
  48. const int N = 1000009, R = 1 << 4;
  49. const int MOD = 1e9 + 7;
  50.  
  51. bool check(int a, int b)
  52. {
  53.     for (int i = 0; i < 32; i++)
  54.     {
  55.         if ((a & 1) == 1)
  56.         {
  57.             if ((b & 1) == 0)
  58.             {
  59.                 return false;
  60.             }
  61.         }
  62.  
  63.         a = (a >> 1);
  64.         b = (b >> 1);
  65.     }
  66.  
  67.     return true;
  68. }
  69.  
  70. signed main()
  71. {
  72.     ios_base::sync_with_stdio(false);
  73.     cin.tie(0);
  74.     cout.tie(0);
  75.  
  76.     int n;
  77.     cin >> n;
  78.  
  79.     vector<int> vc(n);
  80.  
  81.     for (int i = 0; i < n; i++)
  82.     {
  83.         cin >> vc[i];
  84.     }
  85.  
  86.     vector<int> dp(n + 1);
  87.  
  88.     dp[0] = 1;
  89.  
  90.     for (int i = 1; i < n; i++)
  91.     {
  92.         dp[i] = 1;
  93.  
  94.         for (int j = 0; j < i; j++)
  95.         {
  96.             if (check(vc[j], vc[i]))
  97.             {
  98.                 dp[i] = max(dp[i], dp[j] + 1);
  99.             }
  100.         }
  101.     }
  102.  
  103.     int ans = 1;
  104.  
  105.     for (int i = 0; i < n; i++)
  106.     {
  107.         ans = max(ans, dp[i]);
  108.     }
  109.  
  110.     cout << ans;
  111.     return 0;
  112. }
  113.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement