제출 #1305549

#제출 시각아이디문제언어결과실행 시간메모리
1305549coolboy19521Bali Sculptures (APIO15_sculpture)C++20
0 / 100
1 ms652 KiB
#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 timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...