제출 #865159

#제출 시각아이디문제언어결과실행 시간메모리
865159jk410Bali Sculptures (APIO15_sculpture)C++17
71 / 100
1057 ms2904 KiB
#include <iostream>
using namespace std;
typedef long long ll;
const int MAX=40;
int N,A,B;
ll Y[2001];
bool DP[2001][2001];
int main(){
    ios::sync_with_stdio(0);
    cin.tie(0);
    cout.tie(0);
    DP[0][0]=true;
    cin>>N>>A>>B;
    for (int i=1; i<=N; i++){
        cin>>Y[i];
        Y[i]+=Y[i-1];
    }
    ll mask=0;
    for (int t=MAX; t>=0; t--){
        mask^=(1LL<<t);
        for (int i=1; i<=N; i++){
            for (int j=1; j<=i; j++){
                DP[i][j]=false;
                for (int k=0; k<i; k++)
                    DP[i][j]|=(DP[k][j-1]&!((Y[i]-Y[k])&mask));
            }
        }
        bool flag=true;
        for (int i=A; i<=B; i++){
            if (DP[N][i]){
                flag=false;
                break;
            }
        }
        if (flag)
            mask^=(1LL<<t);
    }
    cout<<(((1LL<<MAX+1)-1)^mask);
    return 0;
}

컴파일 시 표준 에러 (stderr) 메시지

sculpture.cpp: In function 'int main()':
sculpture.cpp:38:22: warning: suggest parentheses around '+' inside '<<' [-Wparentheses]
   38 |     cout<<(((1LL<<MAX+1)-1)^mask);
      |                   ~~~^~
#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...