제출 #370251

#제출 시각아이디문제언어결과실행 시간메모리
370251BartolMBali Sculptures (APIO15_sculpture)C++17
71 / 100
40 ms896 KiB
#include <bits/stdc++.h>

using namespace std;

#define X first
#define Y second
#define mp make_pair
#define pb push_back
typedef long long ll;
typedef pair <int, int> pii;
typedef pair <int, pii> pip;
typedef pair <pii, int> ppi;
typedef pair <ll, ll> pll;

const int INF=0x3f3f3f3f;
const int LOG=45;
const int N=2005;

int n, A, B;
ll pref[N];
int dp[N][N];

int f(ll mask) {
//    memset(dp, 0, sizeof dp);
    dp[0][0]=1;
    for (int i=1; i<=n; ++i) {
        for (int j=1; j<=i; ++j) {
            dp[i][j]=0;
            for (int k=0; k<i; ++k) {
                if ((mask | (pref[i]-pref[k]))!=mask) continue;
                dp[i][j]|=dp[k][j-1];
            }
        }
    }
    for (int i=A; i<=B; ++i) if (dp[n][i]) return 1;
    return 0;
}

void solve() {
    ll sol=(1LL<<(LOG+1))-1;
    for (int i=LOG; i>=0; --i) {
        if (f(sol^(1LL<<i))) sol^=(1LL<<i);
    }
    printf("%lld\n", sol);
}

void load() {
    scanf("%d %d %d", &n, &A, &B);
    for (int i=1; i<=n; ++i) {
        scanf("%lld", &pref[i]);
        pref[i]+=pref[i-1];
    }
}

int main() {
    load();
    assert(n<=100);
    solve();
    return 0;
}

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

sculpture.cpp: In function 'void load()':
sculpture.cpp:48:10: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
   48 |     scanf("%d %d %d", &n, &A, &B);
      |     ~~~~~^~~~~~~~~~~~~~~~~~~~~~~~
sculpture.cpp:50:14: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
   50 |         scanf("%lld", &pref[i]);
      |         ~~~~~^~~~~~~~~~~~~~~~~~
#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...