fork download
  1. #include <bits/stdc++.h>
  2. using namespace std;
  3. //#define int long long
  4. #define dd double
  5. #define ld long double
  6. #define ull unsigned long long
  7. #define yes cout << "YES\n"
  8. #define no cout << "NO\n"
  9. #define el "\n"
  10. #define Arwa ios::sync_with_stdio(0); cin.tie(0); cout.tie(0);
  11. #define fix(x) cout << fixed << setprecision(x)
  12. #define all(v) v.begin(),v.end()
  13. #define mod 1000000007
  14. int gcd(int a, int b) { return b == 0 ? a : gcd(b, a % b); }
  15. //Here We Go Again
  16. void Done()
  17. {
  18. int n;
  19. cin>>n;
  20. int arr[n];
  21. vector<int>v,v2;
  22. for(int i=0;i<n;i++)
  23. cin>>arr[i];
  24. int orr=0,left=0,right=0,ind1,ind2;
  25. for(int i=0;i<n;i++)
  26. orr|=arr[i];
  27. for(int i=0;i<n;i++)
  28. {
  29. left|=arr[i];
  30. if(left==orr)
  31. {
  32. v.push_back(i);
  33. left=0;
  34. }
  35. }
  36. for(int i=n-1;i>=0;i--)
  37. {
  38. right|=arr[i];
  39. if(right==orr)
  40. {
  41. v2.push_back(i);
  42. right=0;
  43. }
  44. }
  45. reverse(all(v2));
  46. int mn=300001;
  47. for(int i=0;i<v.size();i++)
  48. {
  49. mn=min(mn,abs(v[i]-v2[i])+1);
  50. }
  51. cout<<mn<<el;
  52. }
  53. //اى ويل بريبير ماى بيبرز تو بى ذا بيست ان زيس وورلد
  54. int32_t main()
  55. {
  56. Arwa
  57. int t=1;
  58. //cin>>t;
  59. while(t--)
  60. {
  61. Done();
  62. }
  63. return 0;
  64. }
  65.  
Success #stdin #stdout 0s 5320KB
stdin
Standard input is empty
stdout
300001