#include "bits/stdc++.h"
#define FOR(i,a,b)for(int i=(a);i<(b);i++)
#define F0R(i,a)FOR(i,0,a)
#define ROF(i,a,b)for(int i=(b)-1;i>=(a);i--)
#define R0F(i,a)ROF(i,0,a)
#define REP(a)F0R(_,a)
using namespace std;
int main(){
int n,a,b;cin>>n>>a>>b;
vector<long long>y(n);
for(long long&i:y)cin>>i;
while(y.size()>b){
n=y.size();
vector<long long>p(n+2),s(n+2);
FOR(i,1,n+1)p[i]=p[i-1]|y[i-1];
ROF(i,1,n+1)s[i]=s[i+1]|y[i-1];
long long val=LLONG_MAX,at=-1;
F0R(i,n-1){
long long nw=p[i]|s[i+3]|(y[i]+y[i+1]);
if(nw<val)val=nw,at=i;
}
y[at]=y[at]+y[at+1];
y.erase(begin(y)+at+1);
}
long long ans=0;
for(long long i:y)ans|=i;
cout<<ans<<'\n';
}
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |