Submission #404963

#TimeUsernameProblemLanguageResultExecution timeMemory
404963HazemBali Sculptures (APIO15_sculpture)C++14
50 / 100
142 ms384 KiB
#include <bits/stdc++.h>
using namespace std;
 
#define LL long long
#define F first
#define S second
#define pii pair<int,int>
#define piii pair<pair<int,int>,int>

const int N = 2e5+10;
const int M = 200;
const LL INF = 1e9;
const LL LINF = 2e18;
const LL MOD = 1e9+7;   
const double PI = 3.141592653589793;

LL a[N],dp[N];
int n,l,r;

bool check1(LL val){

    dp[0] = 0;
    for(int i=1;i<=n;i++){
        dp[i] = LINF;
        LL sum = 0;
        for(int j=i;j>=1;j--){
            sum += a[j];
            if((sum&val)==sum)
                dp[i] = min(dp[i],dp[j-1]+1);
        }
    }
    return dp[n]<=r;
}

int main(){

    //freopen("out.txt","w",stdout);

    scanf("%d%d%d",&n,&l,&r);

    for(int i=1;i<=n;i++)
        scanf("%lld",&a[i]);

    LL ans = (1ll<<45)-1;
    for(LL i=44;i>=0;i--){
        ans ^= 1ll<<i;
        if(!check1(ans))ans ^= 1ll<<i;
    }
    printf("%lld\n",ans);
}   

Compilation message (stderr)

sculpture.cpp: In function 'int main()':
sculpture.cpp:39:10: warning: ignoring return value of 'int scanf(const char*, ...)' declared with attribute 'warn_unused_result' [-Wunused-result]
   39 |     scanf("%d%d%d",&n,&l,&r);
      |     ~~~~~^~~~~~~~~~~~~~~~~~~
sculpture.cpp:42:14: warning: ignoring return value of 'int scanf(const char*, ...)' declared with attribute 'warn_unused_result' [-Wunused-result]
   42 |         scanf("%lld",&a[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...