제출 #40735

#제출 시각아이디문제언어결과실행 시간메모리
40735bogdan10bosBali Sculptures (APIO15_sculpture)C++14
50 / 100
118 ms748 KiB
#include <bits/stdc++.h>

using namespace std;

//#define FILE_IO

typedef long long LL;

int N, A, B;
int v[2005];
LL s[2005];
LL ans;
int dp1[2005];

bool can(int b)
{
    LL pw = (1LL << b);
    if(A == 1)
    {
        dp1[0] = 0;
        for(int i = 1; i <= N; i++)
        {
            dp1[i] = N + 1;
            for(int j = 0; j < i; j++)
                if( ( (s[i] - s[j]) & (~ans) ) < pw )
                    dp1[i] = min(dp1[i], dp1[j] + 1);
        }
        return (dp1[N] <= B);
    }
    return true;
}

int main()
{
    #ifdef FILE_IO
    freopen("1.in", "r", stdin);
    freopen("1.out", "w", stdout);
    #endif

    scanf("%d%d%d", &N, &A, &B);
    for(int i = 1; i <= N; i++) scanf("%d", &v[i]), s[i] = s[i - 1] + v[i];

    ans = 0;
    for(int b = 41; b >= 0; b--)
        if( !can(b) )
            ans ^= (1LL << b);

    printf("%lld\n", ans);

    return 0;
}

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

sculpture.cpp: In function 'int main()':
sculpture.cpp:40:32: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
     scanf("%d%d%d", &N, &A, &B);
                                ^
sculpture.cpp:41:75: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
     for(int i = 1; i <= N; i++) scanf("%d", &v[i]), s[i] = s[i - 1] + v[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...