Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <vector>
- #include <map>
- #include <set>
- #include <queue>
- #include <algorithm>
- #include <string>
- #include <cmath>
- #include <cstdio>
- #include <iomanip>
- #include <fstream>
- #include <cassert>
- #include <cstring>
- #include <unordered_set>
- #include <unordered_map>
- #include <numeric>
- #include <ctime>
- #include <bitset>
- #include <random>
- #include <complex>
- using namespace std;
- const int LIM = 100;
- mt19937 rng(337);
- int solve(vector<int> a) {
- int ans = 0;
- int n = (int)a.size();
- for (int i = 0; i < n; i++) {
- for (int j = i + 1; j < n; j++) {
- for (int k = j + 1; k < n; k++) {
- int val = (a[j] & a[k]);
- val |= a[i];
- ans = max(ans, val);
- }
- }
- }
- return ans;
- }
- signed main() {
- ios_base::sync_with_stdio(false);
- cin.tie(0);
- int n;
- cin >> n;
- vector<int> a(n);
- for (auto &t : a) {
- cin >> t;
- }
- int ans = 0;
- while ((double)clock() / CLOCKS_PER_SEC < 1.9) {
- vector<int> ind;
- for (int i = 0; i < LIM; i++) {
- ind.push_back(rng() % n);
- }
- sort(ind.begin(), ind.end());
- ind.resize(unique(ind.begin(), ind.end()) - ind.begin());
- vector<int> v;
- for (auto i : ind) {
- v.push_back(a[i]);
- }
- ans = max(ans, solve(v));
- }
- cout << ans << endl;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement